2011-02-16 28 views
8

問候大師的,我的目標是創建一個詞典列表,是否存在一個更簡單的技術?簡單的方法來填充一個詞典<字符串,列表<string>>

我更喜歡IEnumerable(t)的List(t),這就是爲什麼我選擇Ilookup或IGrouping上的List of Dictionary。

該代碼的作品,但它似乎是一個凌亂的做事方式。

string[] files = Directory.GetFiles (@"C:\test"); 

Dictionary<string,List<string>> DataX = new Dictionary<string,List<string>>(); 

foreach (var group in files.GroupBy (file => Path.GetExtension (file))) 
{ 
    DataX.Add (group.Key, group.ToList()); 
} 
+0

不應該在該問題在http://codereview.stackexchange.com/上? – servermanfail 2011-02-16 15:23:36

+2

我看不出有什麼問題。你爲什麼覺得它很亂*? – 2011-02-16 15:26:54

回答

12

要做到這一切在LINQ可以使用ToDictionary()

string[] files = Directory.GetFiles (@"C:\test"); 
var DataX = files.GroupBy (file => Path.GetExtension (file)) 
       .ToDictionary(g => g.Key, g => g.ToList()); 

或克勞斯指出了下面你可以做到這一切一氣呵成:

var DataX = Directory.GetFiles (@"C:\test") 
       .GroupBy (file => Path.GetExtension (file)) 
       .ToDictionary(g => g.Key, g => g.ToList()); 
相關問題