下面列出的代码是为了帮助我在C#中找到二维数组的行和列大小,但在访问列长度时(GetLength(1)),我最终会得到一个IndexOutOfRangeException。我查找类似s.o q-a's,但无法确定列大小。
List<List<int>> intLists = new List<List<int>>();
for (int i = 0; i < 2; i++)
{
List<int> tempList = new List<int>();
for (int j = 0; j < 5; j++)
tempList.Add(j + 5+i);
intLists.Add(tempList);
}
int[][] intArray = intLists.Select(Enumerable.ToArray).ToArray();
Console.WriteLine("Dimension 0 Length = " + intArray[0].Length);
Console.WriteLine("Dimension 1 Length = " + intArray[1].Length);
Console.WriteLine("Dimension 0 Length = " + intArray.GetLength(0));
//Console.WriteLine("Dimension 1 Length = " + intArray.GetLength(1));
答案 0 :(得分:5)
intArray
是一个数组数组,它不是2D数组。 Array.GetLength
仅适用于多维数组(int[,]
),因为intArray[0].Length
可能与intArray[1].Length
不同
查看此答案以获取更多详细信息:
What are the differences between a multidimensional array and an array of arrays in C#?