带有两个2d阵列的锯齿状阵列

时间:2014-10-30 15:14:36

标签: c# jagged-arrays

如何创建一个由两个2d数组组成的锯齿状数组?请帮忙。谢谢。

int[][] jaggedArray = new int[3][];

上面的代码创建了一个包含三个元素的单维数组,每个元素都是一个整数的数组。任何人都可以帮我创建一个两个二维数组。

3 个答案:

答案 0 :(得分:2)

这个怎么样:

int[][,] jaggedArray = new int[3][,];

,在锯齿状数组中创建2D数组。详细了解MSDN上的多维数组。

接下来,您必须初始化该数组中的每个2D数组:

int[,] 2dArray1 = new int[2,3];
jaggedArray[0] = 2dArray1;

int[,] 2dArray2 = new int[4,5];
jaggedArray[1] = 2dArray2;

等等。

答案 1 :(得分:2)

我想你想要这样的东西,

var jaggedArray = new[]
        {
            new[] { 1 },
            new[] { 1, 2 ,3 },
            new[] { 1, 2 }
        };

这会产生一个"锯齿状的"数组,有两个维度,每个"行"有不同的长度。

以下所有断言均为True

jaggedArray.Length == 3
jaggedArray[0].Length == 1
jaggedArray[1].Length == 3
jaggedArray[2].Length == 2

如果你知道长度是固定的,但是,他们不知道数据,你可以这样做,

var jaggedArray = new[] { new int[1], new int[3], new int[2] };

继续你的评论,也许你想要这样的事情,

var jaggedArray1 = new[]
        {
            new[] { 1, 2, 3, 4 },
            new[] { 1, 2, 3 },
            new[] { 1, 2 }
        };

var jaggedArray2 = new[]
        {
            new[] { 1, 2, 3 },
            new[] { 1, 2, 3, 4 }
        };

int[][][] jaggedArray = new[]
        {
            jaggedArray1,
            jaggedArray2
        };

你可以做,

var jaggedArray = new[]
        {
            new[]
                {
                    new[] { 1, 2, 3, 4 },
                    new[] { 1, 2, 3 },
                    new[] { 1, 2 }
                },

            new[]
                {
                    new[] { 1, 2, 3 },
                    new[] { 1, 2, 3, 4 }
                }
        };

答案 2 :(得分:1)

第二对括号表示尺寸。因此,除非您不需要在定义中指定维度,否则您将声明一个多维数组。您可以使用不同的维度初始化每个数组。

int[][,] jaggedArray = new int[3][,];