使用默认值(类型为T)初始化List<T>
的方法之一是
List<int> foo = new List<int>(new int[5]);
这将创建一个包含5个零的List。你会怎样做List<List<T>>
?
我知道我们可以使用for循环或使用Enumerate.Repeat(但这会创建一个深层副本),但想知道它是否可以像上面那样完成?
答案 0 :(得分:0)
您可以使用collection initializer初始化内联预定值的列表。
object a, b, c, d, e;
var foo = new List<object>()
{
a, b, c, d, e
};
如果要初始化包含同一对象的多个实例的列表,则List类不提供任何解决方案。你可能应该坚持使用循环。
如果您正在寻找聪明的黑客,可以尝试:
var foo = new List<int>(Enumerable.Range(1, 5).Select(x => 42));
var bar = new List<string>(Enumerable.Range(1, 5).Select(x => "default"));
var far = new List<object>(Enumerable.Range(1, 5).Select(x => new object()));
但不要告诉任何我说过的人。
答案 1 :(得分:-1)
如果没有创建自己的子类,则无法实现。