如何声明一个多维数组

时间:2014-08-02 18:38:56

标签: c# multidimensional-array

听起来很简单,可能就是。

我有这个变量:

byte[,,] data = new byte[360,288]

我想要4个。

我不想要这个:

byte[,,,] data = new byte[360,288,4]

我更喜欢这个:

byte[,,][] data = new byte[360,288][4]

有可能吗?

1 个答案:

答案 0 :(得分:2)

是的,这是锯齿状数组的特例,其中一个锯齿状维度是多维的。

你应该写这样的东西:

        // Initialise 4 arrays of two dimensional arrays
        byte[][,] data = new byte[4][,];
        // Initialise the arrays
        for (var i = data.GetLowerBound(0); i <= data.GetLowerBound(0); ++i)
            data[i] = new byte[360, 258];

当然,如果需要,您可以反转尺寸。

        // Initialise 4 arrays of two dimensional arrays
        byte[,][] data2 = new byte[360,258][];
        // Initialise the arrays
        for (var i = data2.GetLowerBound(0); i <= data2.GetLowerBound(0); ++i)
            for (var j = data2.GetLowerBound(1); j <= data2.GetLowerBound(1); ++j)
                data2[i,j] = new byte[4];