我想要实现的是在不使用循环的情况下多次将一项添加到列表中。
我要将 50 个数字添加到一个列表中,并希望所有这些数字都等于 42。我知道我可以简单地创建一个运行 50 次的小循环并添加相同的项目如此反复;
List<int> listFullOfInts = new List<int>();
int addThis = 42;
for(int i = 0; i < 50; i++)
listFullOfInts.Add(addThis);
我想做的是;
listFullOfInts.AddRange(addThis, 50);
或者至少与此类似的东西,也许使用 Linq?我对看到如何执行此操作有模糊的内存,但无法找到它。有什么想法吗?
最佳答案
您可以使用 Repeat
:
List<int> listFullOfInts = Enumerable.Repeat(42, 50).ToList();
如果您已经有一个列表并且不想使用 ToList
创建一个新列表:
listFullOfInts.AddRange(Enumerable.Repeat(42, 50));
如果你想添加引用类型而不重复相同的引用,你可以使用Enumerable.Range
+Select
:
List<SomeClass> itemList = Enumerable.Range(0, 50)
.Select(i => new SomeClass())
.ToList();
关于c# - 将一个项目多次添加到同一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17169115/