我对 PredicateBuilder 类有疑问。
我有一个 3 类。
public class A
{
public int val1 {get;set;}
public int val2 {get;set;}
public List<B> listb {get;set;}
}
public class B
{
public int val3 {get;set;}
public int val4 {get;set;}
public List<C> listc {get;set;}
}
我如何在 B 类中搜索 val3 我需要这样的搜索:
var query = PredicateBuilder.True<A>();
query = query.And(x => x.listb.Where(b=> b.val3 == 1);
最佳答案
只需将 .Where()
替换为 .Any()
即可创建真/假 bool 条件:
query.And(x => x.listb.Any(b => b.val3 == 1));
这将返回所有 A
记录,其中 listb
中的任何项目包含 1
的 val3
。如果您只想要 A
记录 listb
中的 all 项符合条件,请使用 .All( )
:
query.And(x => x.listb.All(b => b.val3 == 1));
关于c# - PredicateBuilder Where List inside List with C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38489557/