无法创建列表对象数组

Bri*_*now 5 c# collections

我有一行代码如下:

List<string>[] apples = new List<string>()[2];
Run Code Online (Sandbox Code Playgroud)

其目的只是创建一个List对象数组.当我尝试编译我的代码时,上面的行会生成此错误:

无法将类型'string'隐式转换为'System.Collections.Generic.List []

我没有找到很多关于创建List对象数组(实际上只有这个线程)的主题,可能是因为没有搜索引擎会搜索括号.

创建列表集合的唯一方法是将它们放在另一个列表中,如下所示?

List<List<string>> apples = new List<List<string>>(); //I've tried this and it works as expected
Run Code Online (Sandbox Code Playgroud)

感谢您的任何建议,我真的很好奇为什么第一行代码(List []示例)不起作用.

xbr*_*ady 6

试试这个:

List<string>[] apples = new List<string>[2];
Run Code Online (Sandbox Code Playgroud)

之后您将对每个列表进行初始化:

apples[0] = new List<string>();
Run Code Online (Sandbox Code Playgroud)


Ree*_*sey 6

你可以这样做.语法是:

List<string>[] apples = new List<string>[2];
Run Code Online (Sandbox Code Playgroud)

请注意,这只会分配一个引用数组 - 在使用它们之前,您需要实际构建单个列表元素:

List<string>[] apples = new List<string>[2];
apples[0] = new List<string>();
apples[1] = new List<string>();
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用集合初始化语法(适用于少量固定元素),即:

List<string>[] apples = new[] { new List<string>(), new List<string>() };
Run Code Online (Sandbox Code Playgroud)