我想要实现的是将一个项添加到List,多次不使用循环.
我要在List中添加50个数字,并希望所有这些数字等于,比方说,42.我知道我可以简单地创建一个运行50次的小循环并一遍又一遍地添加相同的项目, 因此;
List<int> listFullOfInts = new List<int>();
int addThis = 42;
for(int i = 0; i < 50; i++)
listFullOfInts.Add(addThis);
Run Code Online (Sandbox Code Playgroud)
我想要做的是有些事情;
listFullOfInts.AddRange(addThis, 50);
Run Code Online (Sandbox Code Playgroud)
或者至少与此类似的东西,也许使用Linq?我有一个模糊的记忆,看到如何做到这一点,但我无法找到它.有任何想法吗?
Tim*_*ter 43
你可以使用Repeat:
List<int> listFullOfInts = Enumerable.Repeat(42, 50).ToList();
Run Code Online (Sandbox Code Playgroud)
如果您已有一个列表,并且您不想创建一个新列表ToList:
listFullOfInts.AddRange(Enumerable.Repeat(42, 50));
Run Code Online (Sandbox Code Playgroud)
您不能直接使用 LINQ 来完成此操作,因为 LINQ 没有副作用,但您可以使用 System.linq 命名空间中的一些内容来构建所需的内容。
public static void AddRepeated<T>(this List<T> self,T item, int count){
var temp = Enumerable.Repeat(item,count);
self.AddRange(temp);
}
Run Code Online (Sandbox Code Playgroud)
然后您可以按照您在帖子中建议的方式使用它
listFullOfInts.AddRepeated(addThis, 50);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21667 次 |
| 最近记录: |