多维数组 - 数组数组?

时间:2015-03-30 18:59:36

标签: c# arrays

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

String[] subStrs = new String[20];
subStrs = str.Split('\n'); 

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

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

我收到以下编译错误:

  

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

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

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

1 个答案:

答案 0 :(得分:8)

  

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

不是。 2D数组只是一个2D数组。

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

string[][]

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