我需要根据各种条件对数据库中的条目进行排序。根据其某些属性,每个条目可以具有三种状态之一。
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 来实现这一点?我可以按这些条件对条目进行分组,然后对组进行排序吗?如果是这样,我该怎么做?