您好我希望用。实例化一个列表数组 数组大小为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中,我们如何指定存储在数组中的每个列表的初始容量?
答案 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();
}
}