有没有办法从这两个函数中的任何一个创建泛型函数?(通用数组到字符串)

The*_*sus 1 c# linq generic-programming

我有以下两个函数,有什么方法可以使它们通用,以便它们接受任何数组,然后将其转换为字符串?

public static string PointArrayToString(Point[] array) => string.Join(" ", array);
public static string PointArrayToString(string[,] array) => string.Join(" ", array);
Run Code Online (Sandbox Code Playgroud)

例如...

    public static string PointArrayToString(T[] array) => string.Join(" ", array);
Run Code Online (Sandbox Code Playgroud)

Gil*_*een 7

你快到了:

public static string PointArrayToString<T>(T[] array) => string.Join(" ", array);
Run Code Online (Sandbox Code Playgroud)

并进行测试:

List<string> list1 = new List<string> { "1", "2", "3", "4" };
List<int> list2 = new List<int> { 1, 2, 3, 4 };
string[,] collection3 = new string[,] { { "a", "b" }, { "a", "c" } };

var result1 = PointArrayToString(list1.ToArray());
var result2 = PointArrayToString(list2.ToArray());
var result3 = PointArrayToString(collection3.Cast<string>().ToArray());
Run Code Online (Sandbox Code Playgroud)

如果你不想ToArray每次转换:

public static string PointArrayToString<T>(IEnumerable<T> array) => string.Join(" ", array);
Run Code Online (Sandbox Code Playgroud)