1

我正在尝试构建一个多维数组来存储整数数组。

Array[] TestArray = new Array[2];

for(int i = 0; i < TestArray.Length; i++)
{
   TestArray[i] = new int[5];
}

如何访问新创建的数组成员?我不确定如何访问数组中新创建的数组,尽管我可以看到它们在 Visual Studio 中调试时已正确创建和存储。

4

5 回答 5

12

如果你想要一个整数数组的数组,那么你应该这样声明它:

int[][] testArray = new int[2][];

for(int i = 0; i < testArray.Length; i++)
{
   testArray[i] = new int[5];
}

数组的数组称为锯齿状数组(与多维数组相反)。

于 2013-07-10T14:41:48.587 回答
2

以下是如何访问第二个数组中的第四项:

int value = ((int[]) TestArray.GetValue(1))[3];

尽管使用锯齿状数组的麻烦要少得多:

int[][] TestArray = new int[2][];
for (int i = 0; i < TestArray.Length; i++)
{
    TestArray[i] = new int[5];
}

或多维数组:

int[,] TestArray = new int[2,5];
于 2013-07-10T14:43:50.810 回答
1

将 TestArray 元素转换为int[].

Array[] TestArray = new Array[2];

for(int i = 0; i < TestArray.Length; i++)
{
   TestArray[i] = new [] { 2,3 };
}

var firstIndexOfFirstArray = ((int[])TestArray[0])[0];
于 2013-07-10T14:45:20.203 回答
1

T[][]是您正在寻找的语法。

int[][] test = new int[2][];  //Declaring the array of arrays.

for (int i = 0; i < test.Length; i++)
{
    test[i] = new int[5];  //Instantiating a sub-arrays.
    for (int x = 0; x < test[i].Length; x++)
        test[i][x] = x + i;  //Filling a sub-arrays.
}

foreach (var array in test)  //iterating over the array of arrays.
    Console.WriteLine("Array: " + string.Join(", ", array));  //using a sub-array
Console.ReadLine();

欲了解更多信息:http: //msdn.microsoft.com/en-us/library/2s05feca.aspx

于 2013-07-10T14:41:56.557 回答
0

如果要查找整数数组,请尝试

int[][] testArray
于 2013-07-10T14:42:33.523 回答