使用LINQ/Lambdas将String[]复制到List<String>中?

4

使用更加优美的语法,以下是正确的C#语法:


string[] arr = ///....
List<string> lst = new List<string>();

foreach (var i in arr) {
   lst.Add(i);
}

我觉得可以使用以下代码来实现一行化: arr.Select(x => lst.Add(x)); 但我不太聪明,无法想出正确的语法。
6个回答

16

.ToList() 是可以的,但说实话,你不需要 LINQ:

List<int> list = new List<int>(arr);

虽然我很欣赏这种明显比其他方法更有效的方式,但我提出这个问题是为了更好地理解 C# 语法。 - Armentage

11

虽然我很欣赏这种方法比其他任何方法都更高效,但我提出这个问题是为了更好地了解C#语法。 - Armentage

3

list.AddRange(arr) ?


2

.Net 2.0:

lst.AddRange(arr);

1

你可以这样做...

String[] arr = new String[] { "Hello", "Bonjour", "Hola" };

List<String> lst = arr.ToList();

如果你缺少 .ToList() 方法,你可能需要在你的代码中添加 using System.Linq;...

谢谢 :)


0
  string[] arr = new string[] { "a", "b", "c" };
  var lst = new List<string>();
  Array.ForEach(arr, x => lst.Add(x));

谢谢,这差不多是我想要的,尽管我觉得Array.ForEach似乎有点多余。有没有更通用的东西可以任意应用于任何可枚举的东西? - Armentage

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接