在《C#入门经典》中,string[,]是一个二维字符数组的声明string[][]是一个被称为“锯齿数组”的二维数组相同点:本质上都是二维数组区别:string[,]是一个矩阵(不知道什么是矩阵的话去看看线性代数) string[][]不是一个矩阵,它每一行的元素的数量是不确定的。举个例子:(源自C#入门经典)锯齿数组的实例化:int[][] array={ new int[] {1}, new int[] {1,2}, new int[] {1,3}, new int[] {1,2,4}, new int[] {1,5,7,7,7,9}, new int[] {1,5,7}, new int[] {511,96,9,8,9,9,9,9}, new int[] {12} };每一行的元素个数是不定的,由编程人员确定,所以得名锯齿数组。可以看出,使用锯齿数组的语法要复杂得多,在大多数情况下,使用矩形数组比较简单,但是有时必须使用锯齿数组。
例子:string[][] a = new string[3][];
a[0] = new string[5];
a[1] = new string[4];
a[2] = new string[2];
111
222
333
string[][]=new string[3,X]X为可变
111
22
3
string[][]不是矩阵,元素数量不确定
string[,] 是二维数组,就像一个矩阵一样
string[][] 是不规则数组,就是很多个长度不一样的string[]数组可以组成string[][] 数组(长度,就是含有字符串的个数)
string[][] 一维数组string[]的一维数组
new int[] {1,2},
new int[] {1,3},
new int[] {1,2,4},
new int[] {1,5,7,7,7,9},
new int[] {1,5,7},
new int[] {511,96,9,8,9,9,9,9},
new int[] {12}
};每一行的元素个数是不定的,由编程人员确定,所以得名锯齿数组。可以看出,使用锯齿数组的语法要复杂得多,在大多数情况下,使用矩形数组比较简单,但是有时必须使用锯齿数组。
string[,]是二维数组
string[,][,]是二维数组的二维数组说白了这些玩意儿都是数组,他们都是从Array继承过来的,不过这些类型都是编译器从Array自动继承出来的
string[,][,] c = new string[1, 2][,];
Console.WriteLine(c.GetType());
输出是System.String[,][,]
Console.WriteLine(c.GetType().BaseType);
输出是System.ArrayC#你可以随便定义N维数组
string[,,,,,,,,,,,,,,,]
这叫多维数组也可以定义数组的数组
string[][][][][][][][][]这两者差别很大
前者的元素就是string
后者的元素是个数组
string[][][][][][][][]
后者的元素的元素是
string[][][][][][][]楼主应该可以理解了吧