问候大师,我的目标是创建一个列表字典,是否存在一种更简单的技术?
我更喜欢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());
}
答案 0 :(得分: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());