如何初始化嵌套列表容量



我想在C#中列出一个列表,外部列表的容量必须为5,每个内部列表的容量为100。如何初始化它?

此代码不编译:

List<List<int>> outer = new List<List<int>>(5);
for (int i = 0; i < 5; i++)
{
    outer[i].Add(new List<int>(100));
}

编辑:我不希望列表在运行时改变大小,因为内存分配会破坏性能,这是针对移动游戏

您的代码有一个小的拼写错误。

List<List<int>> outer = new List<List<int>>(5);
for (int i = 0; i < 5; i++)
{
      // vv here //
    outer[i].Add(new List<int>(100));
}

你试图将列表添加到它本身,当然,这是行不通的。如果你放弃[i],那应该可以解决你的问题。

List<List<int>> outer = new List<List<int>>(5);
for (int i = 0; i < 5; i++)
{
    outer.Add(new List<int>(100));
}

也就是说,如果你不需要严格设置外部容量,我建议你使用LINQ。

List<List<int>> outer = Enumerable.Range(0, 5).Select(c => new List<int>(100)).ToList();

如果您确实需要容量,阵列可能更适合外部集合。

最新更新