2010-04-21 39 views
7

Nếu tôi có mô hình sau;LINQ Lồng nhau ở đâu

public List<RecommendedProduct> recommendations 

Sau đó

public class RecommendedProduct 
    public List<Product> Products 

Sau đó, sản phẩm;

public class Product 
    public string Code 

Các khuyến nghị danh sách có, làm ví dụ, 10 mặt hàng trong đó.

Mỗi đề xuất mục có hai Sản phẩm trong đó.

Làm thế nào, với LINQ, tôi có thể tìm thấy đối tượng đề xuất có các sản phẩm có cả mã sản phẩm "A" và "B" không?

Trả lời

11

Sử dụng tiện ích Any:

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 lợi nhuận true nếu có bất kỳ yếu tố trong chuỗi phù hợp với điều kiện bên trong. Trong trường hợp này, bạn đang tìm kiếm hai phần tử, vì vậy phải mất hai cuộc gọi Any.

+0

+1 Brilliant! Cảm ơn @Aaronaught. – griegs