Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在GroupBy之后应用OrderByDescending_C#_Linq - Fatal编程技术网

C# 在GroupBy之后应用OrderByDescending

C# 在GroupBy之后应用OrderByDescending,c#,linq,C#,Linq,我有一个运行良好的linq查询: var ListForEmailTableDistinct = ListForEmailTable .GroupBy(o => new { o.ProjectNumber, o.S

我有一个运行良好的linq查询:

                    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)