可以将C# double,, 数组转换为 double[] 数组,而无需复制。
以下是一个示例代码:
double[,,] cubeArray = new double[2, 3, 4];
// 填充数组
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
for (int k = 0; k < 4; k++)
{
cubeArray[i, j, k] = i * j * k;
}
}
}
// 将 double[,,] 数组转换为 double[] 数组
int length = cubeArray.Length;
double[] flatArray = new double[length];
int index = 0;
for (int i = 0; i< cubeArray.GetLength(0); i++)
{
for (int j = 0; j< cubeArray.GetLength(1); j++)
{
for (int k = 0; k< cubeArray.GetLength(2); k++)
{
flatArray[index++] = cubeArray[i, j, k];
}
}
}
在上面的代码中,我们首先创建了一个 double,, 数组,并填充了一些值。然后,我们创建了一个 double[] 数组,并使用嵌套循环将 double,, 数组中的每个元素复制到 double[] 数组中。
需要注意的是,在将 double,, 数组转换为 double[] 数组时,需要保持原始数组的维度信息,以便在将来需要时可以将其还原为 double,, 数组。因此,在上面的示例代码中,我们使用了 GetLength() 方法来获取原始数组的维度信息。
领取专属 10元无门槛券
手把手带您无忧上云