【发布时间】:2023-01-22 21:36:17
【问题描述】:
我知道 if (includeFilter) query = query.Where (...) 给出与 query = query.Where (n => !includeFilter || <expression>) 相同的结果。
但是,如果我有 <expression1> 和 <expression2> 并且我想要 query.Where (n => <expression1> || <expression2>) 怎么办?除了还有includeFilter1和includeFilter2。
简单地 query.Where (n => (!includeFilter1 || <expression1>) || (!includeFilter2 || <expression2>)) 将不起作用,因为如果 includeFilter1 是 false,<expression2> 将无效。
【问题讨论】:
-
你在找异或?
expression1 ^ expression2是true当任何一个expression1是真的或者expression2是真的,但不是两个都他们中的? -
那这个呢?
query = query.Where(n => includeFilter1 ? <expression1> : includeFilter2 ? <expression2> : false);?