通过文件扩展名将文件分组时获取第一个文件名

时间:2015-03-11 19:38:13

标签: c# linq

我有子文件夹的父文件夹。

所有文件的扩展名都是我生成的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语句中完成?

1 个答案:

答案 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();