PredicateBuilder Where List inside List with C#
PredicateBuilder Where List inside List with C#
PredicateBuilder 有问题Class。
我有 3 个 class 喜欢。
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 class
我需要这样的搜索:
var query = PredicateBuilder.True<A>();
query = query.And(x => x.listb.Where(b=> b.val3 == 1);
只需将 .Where()
替换为 .Any()
即可创建 true/false 布尔条件:
query.And(x => x.listb.Any(b => b.val3 == 1));
这将 return 所有 A
条记录,其中 listb
中的任何项目包含 val3
个 1
。如果您只想要 A
条记录,其中 all 项在 listb
中符合条件,请使用 .All()
:
query.And(x => x.listb.All(b => b.val3 == 1));
PredicateBuilder 有问题Class。
我有 3 个 class 喜欢。
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 class 我需要这样的搜索:
var query = PredicateBuilder.True<A>();
query = query.And(x => x.listb.Where(b=> b.val3 == 1);
只需将 .Where()
替换为 .Any()
即可创建 true/false 布尔条件:
query.And(x => x.listb.Any(b => b.val3 == 1));
这将 return 所有 A
条记录,其中 listb
中的任何项目包含 val3
个 1
。如果您只想要 A
条记录,其中 all 项在 listb
中符合条件,请使用 .All()
:
query.And(x => x.listb.All(b => b.val3 == 1));