获取2d阵列数组中的2d数组

时间:2012-08-30 06:21:19

标签: c# arrays size

我有一个非常愚蠢的问题。请原谅我迟到了,我累了。 :)

我有一个2d数组,其定义如下:

int[,] myArray = new int[,] // array of 7 int[,] arrays
{
    { 1, 10 }, // 0
    { 2, 20 }, // 1
    { 3, 30 }, // 2
    { 4, 40 }, // 3
    { 5, 50 }, // 4
    { 6, 60 }, // 5
    { 7, 70 }, // 6                
};

如您所见,该数组由7个int [,]数组组成。

当我调用 myArray.Length 时,它会产生14.我需要的是7.如何获得int [,]数组的数量?调用的方法是什么(我期望的结果是7)。

再次感谢!

2 个答案:

答案 0 :(得分:5)

使用GetLength方法获取一维的长度。

myArray.GetLength(0)

请尝试以下几行:

 Console.WriteLine(myArray.GetLength(0)); 
 Console.WriteLine(myArray.GetLength(1)); 

你会得到

7
2

答案 1 :(得分:2)

不是 二维数组的数组 - 它是一个单独的2D数组。如前所述,维度由myArray.GetLength(dimension)给出。它不是一个带有“7 int [,] arrays”的数组 - 它只是一个7乘2的数组。

如果你想要一个数组数组(实际上是一个向量的向量),它是:

int[][] myArray = {
    new int[] {1,10}, // alternative: new[]{1,10} - the "int" is optional
    new int[] {2,20},
    new int[] {3,30},
    new int[] {4,40},
    new int[] {5,50},
    new int[] {6,60},
    new int[] {7,70},
};

然后7myArray.Length