2009-06-19 3 views
4

セクシーな構文を使用して次のことを実行する正しいC#構文は何ですか?私はこのように感じるLINQ/Lambdasを使用して文字列[]をリスト<String>にコピーしますか?

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

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

のような何か使用して1つのライナーのようになります。 arr.Selectを(X => lst.Add(X));

しかし、私は正しい構文を理解するのに十分明るいわけではありません。

答えて

16

.ToList()は罰金ですが、正直に言うと、あなたはそのためにLINQを必要としません:

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

これは他の方法よりもはるかに効率的ですが、C#の構文をよく理解するように質問していました。 – Armentage

2

.NET 2.0:

lst.AddRange(arr); 
1

あなただけのこの操作を行うことができます。.. 。

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

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

あなたがあなたのコードにusing System.Linq;を追加する必要があるかもしれません.ToList()方法含まれていない場合...

おかげ:)

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

ありがとう、これは私が探していたものですが、Array.ForEachが少し不必要なように感じます。 Enumerableであるものに任意に適用できる、少し一般的なものはありませんか? – Armentage

関連する問題