C# 如何将三维阵列转换为多个二维阵列

C# 如何将三维阵列转换为多个二维阵列,c#,arrays,multidimensional-array,C#,Arrays,Multidimensional Array,我有一个三维数组中的值数组,存储为[x,y,z]。三维数组对于前面的函数很有用,但是在当前函数中,我想要z系列的[x,y]数组。这可能吗?我拥有的数组是输入[x,y,z],我希望它能被重做成二维数组。x和y是二维数组的值 var dict = new Dictionary<int, double[,]>(); for (int files = 0; files < input.GetLength(2); files++) { dict[files] = input[x,

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

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


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

假设z为3长。我想要的是3个2-D值数组,这没有意义。三维数组是多个二维数组。是的,但我想能够分别调用它们,例如dict[0],dict[1],…等等。是的,但您的结构不清楚。您可以拥有子数组的子数组,也可以拥有包含多组值的数组。你的结构感觉模棱两可。你的z值是唯一的吗?如果不是的话,字典就不管用了。
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);
}