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

use*_*510 0 .net c# asp.net c#-4.0

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

Sim*_*Var 11

简短回答:

list.AddRange(Enumerable.Repeat(item, count));
Run Code Online (Sandbox Code Playgroud)

例:

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
Run Code Online (Sandbox Code Playgroud)

注意:

对于参考对象,这将添加相同的对象x次.如果要创建新对象x次并添加,则可以执行以下操作:

list.AddRange(Enumerable.Repeat(0, count).Select(x => new MyObject()));
Run Code Online (Sandbox Code Playgroud)