c# - 将一个项目多次添加到同一个列表

标签 c# collections

我想要实现的是在不使用循环的情况下多次将一项添加到列表中。

我要将 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();

Demo

如果您已经有一个列表并且不想使用 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/

相关文章:

Java Immutable Collection,也修复引用

c# - 通过代码向 Winforms DataGridView 添加新列

C# - 特定 int 值在数组中出现了多少次?没有 Linq 技术

当我运行关于Java集合接口(interface)的java代码时发生java.lang.ClassCastException

list - 从列表创建总和列表

c# - .NET XML 序列化和空集合

c# - 连接到不安全的gRPC channel 时的"The response ended prematurely"

C# WPF : slider going to exact position

c# - 如何获取窗口列表(DirectSound?ASIO?)音频设备?

java - 检查对象列表中的字段是否具有特定值?