我需要根据各种条件对数据库中的条目进行排序。根据其某些属性,每个条目可以具有三种状态之一。
A组(状态“锁定”):
IsLocked == true;
B 组(状态“不活跃”):
IsLocked == false &&
(IsApproved == false ||
Supplier.IsActive == false ||
Supplier.IsDeleted == true ||
ProductGroup.IsActive == false ||
ProductGroup.IsDeleted == true ||
Products.All(x => x.BestBeforeDate < DateTime.Now) == true)
C 组(状态“活跃”):
IsLocked == false &&
IsApproved == true &&
Supplier.IsActive == true &&
Supplier.IsDeleted == false &&
ProductGroup.IsActive == true &&
ProductGroup.IsDeleted == false &&
Products.Any(x => x.BestBeforeDate > DateTime.Now) == true)
我想避免遍历一个列表,将其分成三个列表,然后再追加它们。有没有办法使用 Linq 来实现这一点?我可以按这些条件对条目进行分组,然后对这些组进行排序吗?如果是这样,我该怎么做?
最佳答案
可以使用扩展方法
OrderBy(x => x.IsLocked).ThenBy(...)
.ThenBy(...)
关于c# - 使用 linq 基于多个条件对数据库条目进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17407761/