C# 按文件扩展名将文件分组时获取第一个文件名
我有父文件夹和子文件夹 所有文件的扩展名都是我生成的guid。guid可以相同也可以不同 文件名是文件的时间戳 目前,我使用以下代码获得每个组的计数:C# 按文件扩展名将文件分组时获取第一个文件名,c#,linq,C#,Linq,我有父文件夹和子文件夹 所有文件的扩展名都是我生成的guid。guid可以相同也可以不同 文件名是文件的时间戳 目前,我使用以下代码获得每个组的计数: var query = Directory.EnumerateFiles("c:\\Catalogues", "*.*", SearchOption.AllDirectories) .GroupBy(file => Path.GetExtension(file)) .Select(grp => new {
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语句中完成 这可以像计算每个组中的文件数一样完成
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();
谢谢,但我收到一个错误,告诉我“字符串不包含名称的定义”,我要等9分钟才接受你的答案,但我会的asap@AndrewSimpson,如果不需要文件的完整路径,也可以使用
FileName=Path.GetFileName(grp.First())