将项目的多个副本添加到列表中

时间:2012-06-21 01:51:39

标签: c# asp.net .net c#-4.0

我有一个POCO对象,根据数字输入我想将此对象复制到此对象类型的列表中。除了使用循环之外,还有一种优雅的方式吗?

1 个答案:

答案 0 :(得分:11)

简答:

list.AddRange(Enumerable.Repeat(item, count));

示例:

var list = new List<int>();

list.Add(0); // 0
list.Add(1); // 0, 1
list.Add(2); // 0, 1, 2

var item = 5;
var count = 3;

list.AddRange(Enumerable.Repeat(item, count)); // 0, 1, 2, 5, 5, 5

注意:

对于参考对象,这将添加相同的对象x次。 如果你想创建一个新对象x次并添加,你可以这样做:

list.AddRange(Enumerable.Repeat(0, count).Select(x => new MyObject()));