可以';t创建列表对象的数组

本文关键字:列表 对象 数组 创建 可以 | 更新日期: 2023-09-27 18:23:53

我有一行代码如下:

List<string>[] apples = new List<string>()[2];

它的目的只是创建一个List对象数组。当我试图编译我的代码时,上面的行会生成以下错误:

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

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

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

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

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

可以';t创建列表对象的数组

您可以这样做。语法为:

List<string>[] apples = new List<string>[2];

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

List<string>[] apples = new List<string>[2];
apples[0] = new List<string>();
apples[1] = new List<string>();

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

List<string>[] apples = new[] { new List<string>(), new List<string>() };

试试这个:

List<string>[] apples = new List<string>[2];

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

apples[0] = new List<string>();
        var listArray = new List<string>[2];
        for (var i = 0; i < listArray.Length; i++)
        {
            listArray[i] = new List<string>();
        }