一个简短的,也许是愚蠢的问题:如何在创建 List<type> 时一次为 n 个元素分配内存?构造函数只允许你设置大概的容量,而不是选择。
如果做不到,那怎么办?我想使用 addRange(INumerable...) 为 1 行中的 n 个元素分配内存。
我听说过一些关于使用 lambda 表达式的单行代码,它们能以某种方式帮助这里还是仅在排序/选择元素时使用它们?请告诉我。不要踢),虽然不,最好踢:)
PS我还需要为List<List<Type>>分配内存,如果你也可以这样写)
一个简短的,也许是愚蠢的问题:如何在创建 List<type> 时一次为 n 个元素分配内存?构造函数只允许你设置大概的容量,而不是选择。
如果做不到,那怎么办?我想使用 addRange(INumerable...) 为 1 行中的 n 个元素分配内存。
我听说过一些关于使用 lambda 表达式的单行代码,它们能以某种方式帮助这里还是仅在排序/选择元素时使用它们?请告诉我。不要踢),虽然不,最好踢:)
PS我还需要为List<List<Type>>分配内存,如果你也可以这样写)
在构造函数中,您指定确切的容量:元素的数量,这样将列表的大小增加到这个数字不会导致重新分配,因此速度很快。你不应该想创建一个带有默认值的列表,它可能没有意义。
但如果你真的想,你可以
new T[n].ToList()
或者像这样:
或者像这样
Enumerable.Repeat(default(T), n).ToList()
:(来自评论的变体@VadimOvchinnikov)