C# 这些声明有区别吗?
这两个都在声明交错列表正确吗C# 这些声明有区别吗?,c#,jagged-arrays,C#,Jagged Arrays,这两个都在声明交错列表正确吗 //Declare 'Jagged' List //Version 1 private List<string>[] fieldInfoArray = new List<string>[7]; //Version 2 private List<string>[][] fieldInfoArray = new List<string>[7][]; //声明“锯齿”列表 //版本1 私有列表[]fieldInfoArr
//Declare 'Jagged' List
//Version 1
private List<string>[] fieldInfoArray = new List<string>[7];
//Version 2
private List<string>[][] fieldInfoArray = new List<string>[7][];
//声明“锯齿”列表
//版本1
私有列表[]fieldInfoArray=新列表[7];
//版本2
私有列表[][]字段信息数组=新列表[7][];
这两个声明没有区别,对吗?他们基本上都在做同一件事,对吗?声明锯齿状列表?私有列表[]fieldInfoArray=新列表[7];
private List<string>[] fieldInfoArray = new List<string>[7];
这是在声明一个大小为7的数组,其大小为List
private List[][]字段信息数组=新列表[7][];
这是一个二维数组列表
,包含7行列表
数组,这些数组尚未初始化/分配。- 两者都声明数组。当您尝试访问任一数组的元素时,将返回
List
- 第一个是大小为7的一维数组。所有7个元素都是
sList
- 第二个数组也是大小为7的一维数组,但这7个元素中的每一个都是另一个“1-D数组”(而不仅仅是“
”)List
数组
类混淆)不是列表对象。它是指向关联内存块的指针。您有一个列表数组。此数组中有7个列表。每个列表对象都有一个模板对象链。在本例中,一个字符串。一个小写的“数组”,是的。还有一个名为Array
的对象,它不应该与之混淆。矩形数组不是被定义为Array[3,4]
?这是错误的,我的第一个声明肯定不是单个数组。我可以在调试模式下向您发送它的映像,它是一个数组的数组。这就是为什么我非常困惑的原因。@Shammy你不应该根据调试显示的内容来判断这个概念,因为编译器优化了代码。啊,我继续发布了它,我无法理解它。我试过了too@Shammy关于“声明绝对不是单个数组”和“调试显示它是数组的数组”。实际上,debug将其显示为列表数组。列表基本上是一个数组。这就是为什么它如此令人困惑。
private List<string>[][] fieldInfoArray = new List<string>[7][];