我想List<string>用指定次数的相同字符串值填充a .
直接C#是:
List<string> myList = new List<string>();
for (int i = 0; i < 50; ++i)
{
myList.Add("myString");
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用LINQ执行此操作?
ang*_*son 40
是的,使用Enumerable.Repeat:
var myList = Enumerable.Repeat("myString", 50).ToList();
Run Code Online (Sandbox Code Playgroud)
或这个:
var myList = new List<string>(Enumerable.Repeat("myString", 50));
Run Code Online (Sandbox Code Playgroud)
如果您要将这些元素添加到现有列表,请使用以下命令:
myList.AddRange(Enumerable.Repeat("myString", 50));
Run Code Online (Sandbox Code Playgroud)
请注意,这本身并不完全是LINQ,但它使用与LINQ一起添加的扩展方法来支持新语法.随着只是 LINQ(即"从......选择"语法),这是一个有点不同的,那么我会做到这一点:
var myList = (from idx in Enumerable.Range(0, 50) select "myString").ToList();
Run Code Online (Sandbox Code Playgroud)
但是,我实际上不会这样做,我会改用它的方法Enumerable.
此外,如果要创建不同的字符串,取决于它是否是您要添加的第一个,第二个,第三个等项目,您可以使用Enumerable.Range:
var myList = Enumerable.Range(0, 50).Select(idx => "myString#" + idx).ToList();
Run Code Online (Sandbox Code Playgroud)
将创建一个字符串列表myString#0,myString#1,myString#2,...
Jon*_*Jon 17
这项工作的最佳工具是Enumerable.Repeat:
var myList = Enumerable.Repeat("myString", 50).ToList();
Run Code Online (Sandbox Code Playgroud)
var myList = Enumerable.Repeat("myString", 50).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3745 次 |
| 最近记录: |