指定存储在列表数组中的每个列表的初始容量

时间:2014-04-24 14:20:15

标签: c#

您好我希望用。实例化一个列表数组  数组大小为1000  以及存储在500的数组中的每个列表的初始容量。

我尝试以下代码,

static List<string>[] myList = new List<string>(500)[1000];     

它给了我例外:

  

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

但如果我只是指定

 static List<string>[] myList = new List<string>[1000];

没有问题......但是有了这个,我没有指定存储在数组中的每个列表的初始容量。

在List Array中,我们如何指定存储在数组中的每个列表的初始容量?

2 个答案:

答案 0 :(得分:4)

在一个声明中没有办法做到这一点。由于您拥有一系列对象,因此您需要单独初始化每个对象:

static List<string>[] myList = new List<string>[1000];      

// in static constructor:
for(int i = 0; i<myList.Length; i++)
{
  myList[i] = new List<string>(500);
}

答案 1 :(得分:1)

您可以使用LINQ:

在一个语句中执行此操作
Enumerable.Range(0, 1000).Select(x => new List<string>(500)).ToArray();

当然你应该把它放在构造函数或方法中。就像这样:

class Foo
{
    private static List<string>[] myList;
    static Foo()
    {
        myList = Enumerable.Range(0, 1000)
            .Select(x => new List<string>(500)).ToArray();
    }
}