填充字典的简便方法<string,List <string >>

zio*_*ion 8 c# linq

问候大师,我的目标是创建一个列表字典,是否存在一种更简单的技术?

我更喜欢List(t)到IEnumerable(t),这就是我选择Ilookup或IGrouping列表的原因.

代码可以工作,但它似乎是一种凌乱的做事方式.

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());
}
Run Code Online (Sandbox Code Playgroud)

Rup*_*Rup 12

要在LINQ中完成所有操作,您可以使用ToDictionary():

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

或者如克劳斯指出的那样,你可以一次性完成这一切:

var DataX = Directory.GetFiles (@"C:\test")
                 .GroupBy (file => Path.GetExtension (file))
                 .ToDictionary(g => g.Key, g => g.ToList());
Run Code Online (Sandbox Code Playgroud)