我正在学习制作静态'辅助'类,我想到的第一个真正应用是将一维数组转换为二维数组。
当我知道数组的类型(即Colors32[]
来自Unity)时,我有这个代码作为方法工作但是在我的帮助器类中,我希望能够传递任何类型的数组并以一定宽度的二维数组形式返回它,身高。
这可能吗?
发布于 2019-06-24 13:40:45
泛型与扩展方法配对似乎是您正在寻找的:
var array1 = new int[8];
var array2 = array1.ToTwoDimensionalArray(3, 4);
// ...
public static class Extensions
{
public static T[,] ToTwoDimensionalArray<T>(this T[] array, int x, int y)
{
if (x < 0) throw new ArgumentException(nameof(x));
if (y < 0) throw new ArgumentException(nameof(y));
var newArray = new T[x, y];
// this may vary depending on your logic
for (var i = 0; i < x; i++)
newArray[i, 0] = array[i];
return newArray;
}
}
有关泛型的更多信息,请查看此内容。
发布于 2019-06-24 14:19:28
看起来像通用方法将适合该法案:
public static T[,] to2d<T>(T[] arr, int x, int y)
{
T[,] result = new T[x, y];
// Copy values from arr according to your logic
return result;
}
https://stackoverflow.com/questions/-100007040
复制相似问题