C#多维数组

时间:2013-07-10 14:39:34

标签: c# arrays jagged-arrays

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

Array[] TestArray = new Array[2];

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

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

5 个答案:

答案 0 :(得分:12)

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

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

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

数组数组称为Jagged Arrays(与Multidimensional Arrays相反)。

答案 1 :(得分: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];

答案 2 :(得分: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

答案 3 :(得分: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];

答案 4 :(得分:0)

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

int[][] testArray