2012-12-05 18 views
12

私はList<String>を持っていますが、私はDictionary<int,String>に変換する必要があります。これを達成するための最短方法はありますか?私は試しました:リスト<String>を辞書に変換するには<int,String>

var dictionary = new Dictionary<int, String>(); 
    int index = 0; 
    list.ForEach(x=>{ 
     definitions.Add(index, x); 
     index++; 
}); 

しかし、私はそれが汚い方法だと思います。

答えて

35
var dict = list.Select((s, i) => new { s, i }).ToDictionary(x => x.i, x => x.s); 
+2

あなたはすごいですよ – Habib

3

用途:私の意見では

var dict = list.Select((x, i) => new {x, i}) 
    .ToDictionary(a => a.i, a => a.x); 
4

、何を持っていることのLINQの方法よりも読みやすい(とボーナスとして、より効率的であることを起こる):

foreach(var item in list) 
    dictionary[index++] = item; 
1

これはきれいであることがわかります

int index = 0; 
var dictionary = myList.ToDictionary(item => index++); 
関連する問題