我有子文件夹的父文件夹。
所有文件的扩展名都是我生成的guid。 guids可以相同或不同。
文件名是文件的时间戳。
目前,我使用此代码获取每组的计数:
var query = Directory.EnumerateFiles("c:\\Catalogues", "*.*", SearchOption.AllDirectories)
.GroupBy(file => Path.GetExtension(file))
.Select(grp => new
{
Extension = grp.Key,
Count = grp.Count()
}).ToList();
我需要获得每个'组'的第一次出现的文件名我可以做一个单独的linq来做这个但我想知道它是否可以在1个linq语句中完成?
答案 0 :(得分:2)
可以像计算每个组中的文件数一样来完成
var query = Directory.EnumerateFiles("c:\\Catalogues", "*.*", SearchOption.AllDirectories)
.GroupBy(file => Path.GetExtension(file))
.Select(grp => new
{
Extension = grp.Key,
FileName = grp.First(),
Count = grp.Count()
}).ToList();