谓词生成器Where List in List with C#
本文关键字:List in with Where 谓词 | 更新日期: 2023-09-27 17:58:07
我的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()
即可创建一个真/假布尔条件:
query.And(x => x.listb.Any(b => b.val3 == 1));
这将返回所有A
记录,其中listb
中的任何项目都包含1
的val3
。如果只希望A
记录中listb
中的所有项都符合条件,请使用.All()
:
query.And(x => x.listb.All(b => b.val3 == 1));