这些声明有区别吗?

Is there a difference in these declarations?

这两个都在声明 Jagged Lists 正确吗?

//Declare 'Jagged' List
//Version 1
private List<string>[] fieldInfoArray = new List<string>[7];

//Version 2
private List<string>[][] fieldInfoArray = new List<string>[7][];

这两个声明没有区别吧?他们基本上都在做同样的事情,对吗?声明锯齿状列表?

private List<string>[] fieldInfoArray = new List<string>[7];

这是在声明一个数组,大小为 7,List<string>

private List<string>[][] fieldInfoArray = new List<string>[7][];

这是在声明一个 List<string> 的二维数组,其中包含 7 行 List<string> 数组,这些数组尚未成为 initialized/allocated。

  • 两者都声明了数组。当您尝试访问任一数组的元素时,您将返回 List<string>.
  • 第一个是大小为 7 的一维数组。所有 7 个元素都是 List<string>s。
  • 第二个数组也是一维数组,大小为 7,但这 7 个元素中的每一个都是另一个 "1-D List<string> 的数组(而不仅仅是“List<string>”)。