gpt4 book ai didi

c# - 如何拆分或加入 "or"上的 linq 查询(不使用 Union)?

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:05 25 4
gpt4 key购买 nike

假设您正在搜索具有两个 bool 属性 A 和 B 的某个对象。

如果你有两个 linq 查询怎么办:

IQueryable<ObjectType> query = getIQueryableSomehow()
query.Where(x => x.A);

IQueryable<ObjectType> query2 = getIQueryableSomehow()
query2.Where(x => x.B);

如何将这些查询连接在一起,使它们等同于此?:

IQueryable<ObjectType> query3 = getIQueryableSomehow()
query3.Where(x => x.A || x.B)

我想使用 query3 = query.Union(query2),但遗憾的是在我的 Linq 提供程序联合中不受支持。

我通过链接 where 子句来拆分 x => x.A && x.B 的情况。这就是我的意思:

IQueryable<ObjectType> query = getIQueryableSomehow();
query = query.Where(x => x.A);
query = query.Where(x => x.B);

对于 or 情况是否有一些类似的解决方法?

谢谢,

艾萨克

最佳答案

使用 Predicate Builder

IQueryable<ObjectType> query = getIQueryableSomehow();
var predicate = PredicateBuilder.False<ObjectType>();
predicate = predicate.Or(x => x.A);
predicate = predicate.Or(x => x.B);

var list = query.Where(predicate).ToList();

关于c# - 如何拆分或加入 "or"上的 linq 查询(不使用 Union)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com