如何将3D阵列转换为多个2D阵列

时间:2014-07-24 19:55:44

标签: c# arrays multidimensional-array

我在三维数组中有一个值数组,存储为[x,y,z]。三维数组对前一个函数很有用,但在当前函数中,我想要z系列的[x,y]数组。这可能吗?我拥有的数组是input[x,y,z],我希望它可以重做为2-D数组。 x和y是二维数组的值。

var dict = new Dictionary<int, double[,]>();
for (int files = 0; files < input.GetLength(2); files++)
{
    dict[files] = input[x,y,files]
}

1 个答案:

答案 0 :(得分:4)

var dict = new Dictionary<int, double[,]>();
for (int files = 0; files < input.GetLength(2); files++)
{
    double[,] twoD = new double[input.GetLength(0), input.GetLength(1)];
    for (int x = 0; x < input.GetLength(0); x++)
        for (int y = 0; y < input.GetLength(1); y++)
            twoD[x, y] = input[x, y, files];
    dict.Add(files, twoD);
}

This SO question也可能会有所帮助。

请注意,这确实假设您的z值是唯一的。