【问题标题】:PredicateBuilder Where List inside List with C#PredicateBuilder where List inside List with C#
【发布时间】:2016-07-20 19:46:24
【问题描述】:

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);

【问题讨论】:

标签: c# linq lambda predicatebuilder


【解决方案1】:

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

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

这将返回所有A 记录,其中listb 中的任何项目包含val31。如果您只想要A 记录其中listb 中的所有 个项目符合条件,请使用.All()

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 2018-04-17
    • 2017-10-19
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    相关资源
    最近更新 更多