我的.NET应用程序中有大量的3D数组.我需要将它们转换为1D数组以将其传递给COM库.有没有办法转换数组而不复制所有数据?
我可以像这样进行转换,但后来我使用了两倍的内存量,这是我的应用程序中的一个问题:
double[] result = new double[input.GetLength(0) * input.GetLength(1) * input.GetLength(2)];
for (i = 0; i < input.GetLength(0); i++)
for (j = 0; j < input.GetLength(1); j++)
for (k = 0; k < input.GetLength(2); k++)
result[i * input.GetLength(1) * input.GetLength(2) + j * input.GetLength(2) + k)] = input[i,j,l];
return result;
Run Code Online (Sandbox Code Playgroud)