Linq顺序有两个标准

本文关键字:两个 标准 顺序 Linq | 更新日期: 2023-09-27 18:07:42

我在linq查询中获得预期结果时遇到了一些麻烦。

下面是一些示例数据:

Queue Priority TTRDate
Main Critical 6/9/2014 7:41:00 PM
Main Major    6/9/2014 7:42:00 PM
Main Critical 6/9/2014 7:43:00 PM
Main Minor    6/9/2014 7:30:00 PM
Main Minor    6/9/2014 7:35:00 PM
查询:

listTickets = queryAllTickets.Where(y => y.Queue == "Main")
  .OrderBy(t => t.Priority == "Critical")
  .ThenBy(x => x.TTRDate)
  .Take(numberOfrecords)
  .ToList();

预期结果:

Main Critical 6/9/2014 7:41:00 PM
Main Critical 6/9/2014 7:43:00 PM
Main Minor    6/9/2014 7:30:00 PM
Main Minor    6/9/2014 7:35:00 PM
Main Major    6/9/2014 7:42:00 PM

简单地说,我希望关键项目按TTRdate排序,然后我希望其他所有项目按TTRdate排序。

Linq顺序有两个标准

falsetrue小,所以需要OrderByDescending:

.OrderByDescending(t => t.Priority == "Critical")

或使用!=代替==:

.OrderBy(t => t.Priority != "Critical")