我目前有一个方法,它递归枚举桌面上的所有文件,并将它们作为IEnumerable<string>
返回。我现在要做的是创建一个方法,它将IEnumerable<string>
作为参数,并使用LINQ按文件类型对它们进行分组/排序。我在获取文件类型时遇到了麻烦。经过试验,我得到了以下结果:
foreach(string file in files){
FileInfo f = new FileInfo(file);
Console.WriteLine(f.Extension);
}
我能够获取所有文件的扩展名,但不知道如何使用LINQ查询获取该信息
4条答案
按热度按时间nkoocmlb1#
您可以使用GroupBy方法:
nsc4cvqm2#
订购:
至群组:
所以你有一个
List<string>
的List
,其中你有相同扩展名的所有文件。8ljdwjyq3#
我建议使用
Dictionary<string, List<string>>
而不是List<List<string>>
。umuewwlo4#
我会使用一个类似于字典的查找,但是值是一个可枚举的,所以如果你请求一个不包含的项(在本例中是一个文件扩展名),你永远不会得到异常:
获取桌面文件:
下面是重要的代码,一行代码:
现在用它把一些文件放入列表中。但是注意你也可以附加
Count()
来计算它们的数量,或者使用所有其他的LINQ方法:您还可以按文件类型循环所有可用文件: