2011-02-16 34 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()); 
相关问题