PredicateBuilder列表里面列出了C#

时间:2016-07-20 19:46:24

标签: 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;}
}

如何在B类中搜索val3 我需要一个搜索:

var query = PredicateBuilder.True<A>();
query = query.And(x => x.listb.Where(b=> b.val3 == 1);

1 个答案:

答案 0 :(得分:3)

只需将.Where()替换为.Any()即可创建一个真/假布尔条件:

query.And(x => x.listb.Any(b => b.val3 == 1));

这将返回A中任何listb val3 1A所有listb条记录。如果您只想.All()query.And(x => x.listb.All(b => b.val3 == 1)); 所有 项目符合MapChangeListener条件,请使用Map

cellValueFactory