C#中二维数组包含两类:二维数组和数据矩阵。(这是我个人分类法,我认为比较能反映本质)。
如上图,是二维数组,横向为第一维度,纵向为第二维度,不同维度可以有不同长度。
如果去掉元素7,那么上图也可能是数据矩阵(看上去就是第一维度具有相同长度的二维数组)。
二者本质有什么区别呢?
二维数组的本质就是二维数组,如上图二维数组的声明方法:
int[][] arr= new int[2][];
arr[0]=new int[3];
arr[1]=new int[4];
遍历方法可以用for,也可以用foreach,如:
foreach(int[] i in arr)//由此也可以看出,二维数组的每个第一维都是一个单独的数组
foreach(int j in i)
Console.Write(j);
数据矩阵的本质还是一维数组,上图中去掉元素7后的数据矩阵声明方法为:
int[,] arr=new int[2,3]{{1,2,3},{4,5,6}};
遍历方法可以用for,也可以用foreach,如:
foreach(int i in arr)//由此也可以看出,数据矩阵本身还是一位数组,其内存存储方式为线性
Console.Write(i);