我需要按照状态==“Rejected”和日期升序,再按照状态==“Accepted”和日期降序排序列表。
我尝试使用以下代码,但不确定如何操作:
items
.OrderBy(x => x.status == "Rejected")
.ThenBy(x => x.DateSubmitted)
.ThenBy(x => x.status == "Accepted")
.ThenByDescending(x => x.DateSubmitted)
我需要按照状态==“Rejected”和日期升序,再按照状态==“Accepted”和日期降序排序列表。
我尝试使用以下代码,但不确定如何操作:
items
.OrderBy(x => x.status == "Rejected")
.ThenBy(x => x.DateSubmitted)
.ThenBy(x => x.status == "Accepted")
.ThenByDescending(x => x.DateSubmitted)
items
.Where(x => x.status == "Rejected")
.OrderBy(x => x.DateSubmitted)
.Concat(items.
.Where(x => x.status == "Accepted")
.OrderByDescending(x => x.DateSubmitted));
主要区别在于,现在除了“已拒绝”或“已接受”之外的状态不再显示。 但我认为这正是您想要的。如果您想要完整的设置,请考虑使用
items
.Where(x => x.status == "Rejected")
.OrderBy(x => x.DateSubmitted)
.Concat(items.
.Where(x => x.status != "Rejected")
.OrderByDescending(x => x.DateSubmitted));
PS. 这也假定使用 Linq-To-Objects。我不太熟悉 Linq-to-EF 或 Linq-to-SQL。