C#对通用列表进行分组/排序<>使用LINQ

时间:2009-11-09 14:28:33

标签: c# linq

我希望对通用列表<>进行分组和排序。我有一个表示文件的对象列表,每个对象都有一个FileName,FileType和FileDate属性。 FileType定义为枚举。

我有一些工作代码,允许我按FileType将文件列表组合在一起。

var fileGroups = fileList.GroupBy(f=> f.FileType)

foreach (var group in fileGroups )
{
   foreach (var file in group)
   {
   }
}

我希望能够做的是通过FileType枚举值对文件组进行排序,然后通过FileDate对fileGroups中的每个组进行排序。

1 个答案:

答案 0 :(得分:5)

var sortedThing = fileGroups
                  .OrderBy(g => g.Key)             // (1) Order the groups
                  .Select(g => g.OrderBy(f => f.FileDate));   // (2) Order *each* group

您需要排序的组(1)和内部排序的每个组(2);