我有一个包含数字作为二维矩阵的字符串。我正在尝试使用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
。我只是好奇为什么我不能使用上面的方法?
答案 0 :(得分:8)
如果2D数组实际上是数组数组
不是。 2D数组只是一个2D数组。
数组数组是一个数组数组:
string[][]
如果你有一个数组数组,那么外部数组的每个索引处的项是另一个数组。如果你有一个2D数组,那么需要两个维来得到一个值,这个值本身就是数组的值,而不是另一个维度。