1.何为锯齿数组?
数组中每行的元素个数不相同。
2.声明锯齿数组。
声明数组的数组,其语法主要在数组的声明中制定多个方括号对,如:
int[][] ArrayName;
第一个括号对中设置该数组的行数,第二个括号对定义各行的元素个数,先设置为空。因为每行中包含的元素个数不相等。
还有以下声明:
初始化包含其他数组的数组(也称子数组),然后依次初始化子数组。
ArrayName = new int[2][]; ArrayName = new int[3]; ArrayName = new int[4];
字面值赋值的改进形式:
ArrayName = new int[3][] { new int[] {1,2,3},new int{1}; new int{4,5} };
也可以进行简化,把数组的初始值和声明放在同一行上,如下:
int[][] ArrayName = {new int[] {1,2,3}, new int{1}; new int{4,5}};
3.锯齿数组的遍历可以用for循环和foreach的方法。
for循环:用两个for循环对数组进行一一遍历,详情看代码。
foreach: 也是用嵌套的方法,才能得到实际数据。
为什么要嵌套呢?因为数组myIntArray4包含int[]元素,而非int元素,所以必须循环子数组和数组本身。
static void Main(string[] args) { //声明一个锯齿数组 三行 int[][] myIntArray4; myIntArray4 = new int[3][]; myIntArray4[0] = new int[] { 1, 11, 111 }; myIntArray4[1] = new int[] { 2, 22 }; myIntArray4[2] = new int[] { 3, 33, 333, 3333 }; for (int i = 0; i < myIntArray4.Length; i++) { for (int j = 0; j < myIntArray4[i].Length; j++) { Console.WriteLine("{0}", myIntArray4[i][j]); } } /*for循环*/ foreach (int[] ab in myIntArray4) { foreach (int abc in ab) { Console.WriteLine(abc); } /*foreach*/ } Console.Read(); }