string[][]和string[,]的区别

摘抄1:

string[][] 是不规则的,可以理解成元素是 string[] 类型的一维数组

string[,] 是规则的,可以理解是个矩阵,每个元素都是 string 类型

可以假设,在 JsSerializer 里面有一个方法用 foreach 遍历处理 IEnumerable 的成员,那么你可以试一下代码:

string[][] jagger;
string[,] matrix;
foreach (var item1 in jagger){}
foreach (var item2 in matrix){}

不用运行,用 VS 的智能提示看看两个 var 分别是什么类型,你会发现 item1 的类型是 string[],item2 的类型是 string,这就可以理解 JsSerializer 处理 string[][] 和 string[,] 的行为了。



摘抄2:

string[][]是一维数组。string[,]是二维数组。
string[][]和普通的一维数组不同的是。他的每个元素本身就是又是一个数组。
而string[,]是二维数组。就是数组的每一个元素都必须是长度为2的数组。
比如有下面的数组

[
[1,2,3],
[2,4]
]


那么这个数组必定是string[][]类型而不会是string[,]类型。
因为string[][]定义时:数组的里的每个元素都是数组。(只要是数组就行)
string[,]定义是:数组的每一个元素都必须是长度为2的数组。
可见基本上可以理解都是二维数组但string[][]里的元素长度可以不相等。
string[,]必须长度一致

你可能感兴趣的:(c语言学习基础知识,c#,string)