C# 在GroupBy之后应用OrderByDescending
我有一个运行良好的linq查询:C# 在GroupBy之后应用OrderByDescending,c#,linq,C#,Linq,我有一个运行良好的linq查询: var ListForEmailTableDistinct = ListForEmailTable .GroupBy(o => new { o.ProjectNumber, o.S
var ListForEmailTableDistinct = ListForEmailTable
.GroupBy(o => new
{
o.ProjectNumber,
o.SubProjectNumber,
o.SubProjectName,
o.ProjectType,
o.ProjectManager,
o.ErrorType
})
.Select(o => o.FirstOrDefault());
我想通过组合(ProjectNumber和SubProjectNumber)来排列此列表。保留所有列,但只需按要求的方式排序即可。
我怎么能做到?我已尝试执行以下操作:
ListForEmailTableDistinct.GroupBy(x => new { x.ProjectNumber, x.SubProjectNumber })
.OrderByDescending(o => o.Key).ToList();
但在这种情况下,我无法在以下方面进一步使用它:
HTMLTableInString = CreateHTMLTable(ListForEmailTableDistinct,
x => (x?.ProjectNumber, "Project number"),
x => (x?.SubProjectNumber, "Sub-project number"),
x => (x?.SubProjectName, "Sub-project name"),
x => (x?.ProjectType, "Sub-project type"),
x => (x?.ProjectManager, "Project manager"),
x => (x?.ErrorType, "Error type")
);
您不能在方法中使用它,因为通过使用
GroupBy
和ToList
将结果转换为列表
正如Camilo Terevinto在评论中指出的那样,按多个字段排序的正确方法是使用OrderBy
,然后使用ThenBy
代码如下所示:
ListForEmailTableDistinct
.OrderByDescending(x => x.ProjectNumber)
.ThenByDescending(x => x.SubProjectNumber);
ListForEmailTable.OrderByDescending(x=>x.Some)。然后ByDescending(x=>x.other)
?