【发布时间】:2016-12-04 03:59:06
【问题描述】:
我有一个 lambda 表达式列表List<Func<SomeObject, bool>> filterList;
此过滤器列表用于过滤 SomeObject 的集合,如下所示:
List<SomeObject> randomList; //filled with random stuff
foreach (Func<SomeObject, bool> filter in filterlist)
randomList = randomList.Where(filter).ToList();
现在我想组合一些过滤器 - 但我想将它们与 AND 或 OR 语句组合。 例如:用户有 3 个过滤器 A、B 和 C,并希望将它们组合成“A && (B || C)”。
我不知道该怎么做。
【问题讨论】:
-
实际上你已经用 AND 组合了它们
-
您如何知道何时与 AND 结合以及何时与 OR 结合?
-
是的,但我想设置复杂的过滤器(例如“A && (B || C)”)。 :P
-
我的过滤器列表还包含名称和 ID。用户选择了两个过滤器(B 和 C)并按下按钮“组合或”。现在我想识别这两个规则并将它们组合成一个新的规则。
标签: c# .net collections lambda