我有一个包含数字的字符串作为2D矩阵。我正在尝试使用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
。我很好奇为什么我不能使用上面的方法?
最佳答案
如果2D数组真的是数组的数组
不是。 2D阵列就是2D阵列。
数组数组是数组数组:
string[][]
如果您有一个数组数组,那么外部数组每个索引处的项目就是另一个数组。如果您有一个2D数组,则两个维度都需要一个值,该值本身就是数组的值,而不是另一个维度。
关于c# - 多维数组-数组数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354074/