Jad*_*ias 4 .net c# arrays multidimensional-array
我必须使用一个接受double [,]的方法,但我只有一个double [].我怎么转换它?
目前解决方案:
var array = new double[1, x.Length];
foreach (var i in Enumerable.Range(0, x.Length))
{
array[0, i] = x;
}
Run Code Online (Sandbox Code Playgroud)
没有直接的方法.你应该把东西复制成一个double[,].假设您想要它在一行中:
double[,] arr = new double[1, original.Length];
for (int i = 0; i < original.Length; ++i)
arr[0, i] = original[i];
Run Code Online (Sandbox Code Playgroud)
如果您知道2D数组的宽度,则可以使用以下内容将值作为一行接一行地放入.
private T[,] toRectangular<T>(T[] flatArray, int width)
{
int height = (int)Math.Ceiling(flatArray.Length / (double)width);
T[,] result = new T[height, width];
int rowIndex, colIndex;
for (int index = 0; index < flatArray.Length; index++)
{
rowIndex = index / width;
colIndex = index % width;
result[rowIndex, colIndex] = flatArray[index];
}
return result;
}
Run Code Online (Sandbox Code Playgroud)