Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串[,]和字符串[][]之间的差异_C# - Fatal编程技术网

C# 字符串[,]和字符串[][]之间的差异

C# 字符串[,]和字符串[][]之间的差异,c#,C#,希望这不是一个重复,因为我做了搜索,什么也没找到 乍一看,我认为它们的行为类似,但没有。一个是二维字符串数组,另一个是字符串数组数组,即从(List)obj.ToArray()返回的内容 我知道如何使用(List)obj.ToArray()返回锯齿数组类型 如何使用类似的概念返回2d数组,即从其他数据构建一个集合对象,并调用array或其他将返回2d数组的方法 谢谢一个是a,另一个是a 有一些区别。多维数组将保证每行具有相同的长度。对于交错数组,每个“行”都是一个数组,这些数组的大小可以不同 另

希望这不是一个重复,因为我做了搜索,什么也没找到

乍一看,我认为它们的行为类似,但没有。一个是二维字符串数组,另一个是字符串数组数组,即从(List)obj.ToArray()返回的内容

我知道如何使用(List)obj.ToArray()返回锯齿数组类型

如何使用类似的概念返回2d数组,即从其他数据构建一个集合对象,并调用array或其他将返回2d数组的方法

谢谢

一个是a,另一个是a

有一些区别。多维数组将保证每行具有相同的长度。对于交错数组,每个“行”都是一个数组,这些数组的大小可以不同

另一个区别是内存布局。多维数组是单个对象,保证数组元素在内存中靠得更近。由于交错数组是数组的数组,因此不能保证每个数组在内存中按顺序分配,特别是在多线程情况下

还值得注意的是,建议在多维数据上使用锯齿数组:

√ 考虑使用锯齿数组代替多维数组。

锯齿数组是字符串[][] 二维数组是字符串[,]

换句话说,使用字符串[,]时,每行具有相同数量的元素。
在字符串[]中,每一行可能有不同数量的元素。

二维字符串数组和字符串数组数组之间的区别是什么?我没有看到一个。。。至少不在实用程序中。@evanmdonnal
new[]{new string[1],new string[2]}
,这在
string[][]
中是可能的,但在
string[,]
中是不可能的diplopia@hvd啊,我现在明白了。但是我永远不会那样做。。。如果你这样做了,我可能会称你为白痴:-&(酷。没有解释原因的下一票。如果你想在内存中按顺序分配行(即,你正在使用位图/视频缓冲区),那么你需要的是多维数组而不是锯齿数组。