2012-12-05 104 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++); 
相關問題