我想在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));
}
编辑:我不希望列表在运行时改变大小,导致内存分配破坏性能,这是针对手机游戏
答案 0 :(得分:4)
您的代码有一个小错字。
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();
如果你确实需要容量,那么数组可能更适合外部集合。