2010-04-21 12 views
7

Si tengo el siguiente modelo;LINQ Anidado donde

public List<RecommendedProduct> recommendations 

Entonces

public class RecommendedProduct 
    public List<Product> Products 

entonces el producto;

public class Product 
    public string Code 

Las recomendaciones lista tiene, como un ejemplo, 10 artículos en él.

Cada recomendaciones artículo tiene dos productos en el mismo.

¿Cómo, con LINQ, puedo encontrar el objeto de recomendaciones que tiene productos con códigos de producto "A" y "B"?

Respuesta

11

Utilice la Any extensión:

var myProducts = 
    from rp in recommendations 
    where 
     cp.Products.Any(p => p.Product.Code == "A") && 
     cp.Products.Any(p => p.Product.Code == "B") 
    select rp; 

Any rendimientos true si hay elementos de la secuencia que coincidan con la condición interna. En este caso, está buscando dos elementos, por lo que se necesitan dos llamadas Any.

+0

+1 Brilliant! Gracias @Aaronaught. – griegs