2016-07-20 17 views
4

У меня проблема с PredicateBuilder Class.PredicateBuilder Где список внутри списка с C#

У меня есть класс 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;} 
} 

, как я могу найти val3 в классе B мне нужен поиск, как:

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

я получаю сообщение об ошибке. не может неявно преобразовывать тип «System.Collections.Generic.IEnumerable to bool – caras

ответ

3

Просто замените .Where() с .Any() создать истинное/ложное логическое условие:

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

Это вернет все A записей, где любой элемент в listb содержит val3 из 1. Если вы хотите только A записи, где всех элементов в listb соответствуют условию, используйте .All():

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

 Смежные вопросы

  • Нет связанных вопросов^_^