多维数组 - 数组数组?

Dum*_*ore 1 c# arrays

我有一个包含数字作为2D矩阵的字符串.我正在尝试使用Split函数将a的内容拆分string为数组.所以,当我这样做时:

String[] subStrs = new String[20];
subStrs = str.Split('\n'); 
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常.但是,当我尝试创建一个2D数组并尝试使用相同的方式填充子数组时:

String[,] numbers = new String[20,20];
for (int i = 0; i < subStrs.Length; i++ )
{
    numbers[i] = subStrs[i].Split(' '); //Error
}
Run Code Online (Sandbox Code Playgroud)

我得到以下编译器错误:

[]内的索引数量错误; 预期2.

如果2D数组实际上是一个数组数组,那么为什么该语句是numbers[i] = subStrs[i].Split(' ');非法的?

PS:我知道我可以使用嵌套循环来填充numbers.我只是好奇为什么我不能使用上面的方法?

Ser*_*rvy 8

如果2D数组实际上是一个数组数组

不是.2D阵列就是2D阵列.

数组数组是一个数组数组:

string[][]
Run Code Online (Sandbox Code Playgroud)

如果您有一个数组数组,那么外部数组的每个索引处的项是另一个数组.如果你有一个2D数组,那么需要两个维来获得一个值,这个值本身就是数组的值,而不是另一个维度.