c# - 多维数组-数组数组?

标签 c# arrays

我有一个包含数字的字符串作为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/

相关文章:

c# - 对许多表使用与 Controller 相同的类

c# - 当 DateTime 传递给采用 Nullable DateTime 的方法时,为什么我会丢失 DateTime 的毫秒数?

c - 扑克程序中的多维数组

arrays - 有什么方法可以在 Common Lisp 中将扁平结构数组分配为 C?

c# - 从 web 服务返回列表<object>

c# - 对 ASP.NET 的 Javascript 函数调用

c# - EF 对象包装器围绕数据库/域模型中的原始类型

c - 为什么打印指针值不需要这个二维数组的星号

javascript - 在 JavaScript 中从数组异步调用函数

javascript - 如何分解长文本文件的内容以适应谷歌应用程序脚本中的多个变量?