有人可以告诉我如何在LinQ语句上执行OR吗?例如,如果我有两个扩展方法:ByIdA()和ByIdB().然后我想使用它们类似于:
var yada = _something.Entity.ByIdA().ByIdB();
Run Code Online (Sandbox Code Playgroud)
上面将调用两个并返回A和B都为真的行.如何编写它以使用OR并返回A或B为真的行?
我有一个带有子表B的Icollection的实体A,所以我想从A返回行,其中Ax = 1或者By = 1.
你需要在哪里使用
_collection.Where(x => x.ByIdA() || x.ByIdB());
Run Code Online (Sandbox Code Playgroud)
要返回两个集合的并集,可以使用Union运算符.
_something.Entity.ByIdA().Union(_something.Entity.ByIdB())
Run Code Online (Sandbox Code Playgroud)
如果您的集合没有任何公共元素,您可以使用Concat更便宜的运算符,因为它不检查重复项.