car*_*ras 5 c# linq lambda predicatebuilder
我对 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;}
}
Run Code Online (Sandbox Code Playgroud)
我如何在 B 类中搜索 val3 我需要这样的搜索:
var query = PredicateBuilder.True<A>();
query = query.And(x => x.listb.Where(b=> b.val3 == 1);
Run Code Online (Sandbox Code Playgroud)
只需替换.Where()为即可.Any()创建真/假布尔条件:
query.And(x => x.listb.Any(b => b.val3 == 1));
Run Code Online (Sandbox Code Playgroud)
这将返回其中任何项目包含of的所有A记录。如果您只想记录所有项目都符合条件的记录,请使用:listbval31Alistb.All()
query.And(x => x.listb.All(b => b.val3 == 1));
Run Code Online (Sandbox Code Playgroud)