c# - 带条件排序的 LINQ OrderBy/ThenBy

标签 c# linq list sorting

我正在尝试按日期对列表进行排序,然后按描述名称对列表进行排序,但是我需要所有具有特定描述的元素成为每个日期的顶部元素。

示例:

01-02-2014 "Description A"
01-02-2014 "Description B"
01-02-2014 "Description C"
01-02-2014 "Description D"
01-02-2014 "Description E"

02-02-2014 "Description A"
02-02-2014 "Description B"
02-02-2014 "Description C"
02-02-2014 "Description D"
02-02-2014 "Description E"

我需要它如何排序是按日期和描述,但也包括每个日期内列表顶部的所有 Description B 元素。像这样,

01-02-2014 "Description B" <-- Top (Rest below is still sorted ascending)
01-02-2014 "Description A"
01-02-2014 "Description C"
01-02-2014 "Description D"
01-02-2014 "Description E"

02-02-2014 "Description B" <-- Top (Rest below is still sorted ascending)
02-02-2014 "Description A"
02-02-2014 "Description C"
02-02-2014 "Description D"
02-02-2014 "Description E"

我已经尝试使用 LINQ 来完成此操作,但我不确定它是否可以作为单个查询来完成。

return ListOfItems.OrderByDescending(x => x.Date).ThenBy(x => x.Type)

最佳答案

这一系列排序语句将按照您的示例显示的方式对其进行排序

return ListOfItems.OrderBy(x => x.Date)
                  .ThenByDescending(x => x.Type == "Description B")
                  .ThenBy(x => x.Type);

关于c# - 带条件排序的 LINQ OrderBy/ThenBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22154341/

相关文章:

c# - 我应该在 Page_Init 中以编程方式添加控制事件处理程序吗?

c# - 跨用户 C# 互斥

c# - 时间跨度比较

c# - 如何使用 LINQ 从 Asp.Net 配置文件属性中查询

python - python 中的元组列表

c# - 如何组合多个 Func<> 委托(delegate)

c# - 无法理解这个 IEnumerable<T>.ToArray() 示例

c# - 将 XML 转换为列表

java - 在 Java 中使用 API 获取事件的 Google 日历参与者

python - 修改列表中数字的累积和