这两者之间有什么区别:
int [][] myArray;
和
int [,] myOtherArray;
这两者之间有什么区别:
int [][] myArray;
和
int [,] myOtherArray;
第一种是锯齿数组:一个数组中的每个项都是另一个数组
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];
第二种是多维数组,也称为矩阵。int[,] array = new int[4, 2]; // create a 4 by 2 matrix
int[][] jagged = new int[3][];
jagged[0] = new int[1];
jagged[1] = new int[2];
jagged[2] = new int[4];
将会如此呈现
[0] - [0]
[1] - [0][1]
[2] - [0][1][2][3]
当涉及到二维或更高维的数组时,我们需要使用多维数组。
int[,] twodimensional = new int[3,4]
将会看起来像这样
[0,0][0,1][0,2][0,3]
[1,0][1,1][1,2][1,3]
[2,0][2,1][2,2][2,3]
锯齿数组:
int [][] myArray;
矩形数组:
int [,] myOtherArray;
矩形数组和锯齿形数组的结构有很大的不同。
一维数组在CIL中有特定的指令,可以使它们得到优化以提高性能。而矩形数组没有这些指令,无法得到同样的优化。因此,有时使用由一维数组组成的锯齿形数组可能更加高效,因为它们可以得到优化;而使用矩形数组则可能更简单,因为它可以被视为一个单元,而不是一个数组的数组。
第一个是锯齿数组,另一个是多维数组 - 区别在于锯齿数组的元素可以具有不同的维度和大小。
这应该是一个重复的问题。一个是锯齿形数组,另一个是二维数组。你应该能够从中得到答案。
这两个语句都声明了未初始化的多维整数数组。第一个是锯齿形数组,第二个是二维数组。
您可以在声明时同时初始化二维数组,如下所示:
int[,] array4 = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
或者,
int[,] array = new int[4, 2];
请参阅官方文档: