【发布时间】:2015-11-14 03:52:36
【问题描述】:
这两个都声明锯齿状列表正确?
//Declare 'Jagged' List
//Version 1
private List<string>[] fieldInfoArray = new List<string>[7];
//Version 2
private List<string>[][] fieldInfoArray = new List<string>[7][];
这两个声明没有区别吧?他们基本上都在做同样的事情对吗?声明一个锯齿状列表?
【问题讨论】:
-
你声明了两个完全不同的对象。所以是的,有很大的不同
-
更具体。在我的代码中,它们似乎都在声明一个数组数组(或列表列表),但是您想这样想。
-
@Shammy 您不应该根据调试显示的内容来判断这个概念,因为编译器会优化代码。例如,声明一个不使用的变量并在其上设置断点。变量存在,但调试器永远不会登陆它。
-
@SILENT 当我使用断点进行调试并将鼠标悬停在手头的对象上时,即 fieldInfoArray(第一个声明)它有一个包含 8 个数组的数组。所以每个人说的都是没有意义的,或者他们只是不知道你可以这样声明,或者还有其他一些非常奇怪的事情发生了哈哈
-
@Shammy 我创建了一个快速代码示例并对其进行了测试。我得到了 7 个新 List
[7] 的数组。不知道你在说什么 8 个数组。
标签: c# jagged-arrays