我有一些我想要的ORu一起。我的理解是使用Where
将它们组合在一起将它们链接在一起(尽管我的理解可能有问题。)
这是我想要一起查询的一个例子,而不是使用所有链接的Where
子句:
var query = query.Where(x => x.Value == 1)
.Where(x => x.Name == name);
而不是那样,我正在寻找类似的东西:
var query = query.Where(x => x.Value == 1)
.Or(x => x.Name == name)
.Or(x => x.SomeOtherValue == something else)
.Or(x => x.AChildObject.Items.Where(item => item.SomeValue == yet something else));
......在我的情况下,我可能需要像上面那样将10个或项目链接在一起。
我一直在查看this one这样的帖子,我想我可以使用一系列||
语句将事物连在一起,但我不确定这是不是这样的去。它可能会很难阅读。
在线研究这篇文章时,我遇到了关于PredicateBuilders之类的内容丰富的文章。我无论如何都不是LINQ的专家,我希望得到一些指导?
答案 0 :(得分:2)
看起来你可以使用OR运算符。
var query = query.Where(x => x.Value == 1
|| x.Name == name)
|| x => x.SomeOtherValue == something else)
|| x => x.AChildObject.Items.Where(item => item.SomeValue == yet something else))
如果数据来自不同来源,您也可以使用Union或Concat,请参阅Linq union usage?