2016-06-14 3 views
0

두 클래스가 있습니다.linq에서 특정 아이템을 포함하고 있지 않은 목록을 선택하십시오.

public class Category 
{ 
    public int Id {get;set;} 
    public string Name{get;set;} 
} 
public class Product 
{ 
    public int ProductId{get;set;} 
    public string Name{get;set;} 
    public List<Category> ProductCategory {get;set;} 
} 

지금 나는 제품에게 내가 '집'과 '쌀된'에 속하지 않는 모든 제품에 필요

List<string> filtercategory ={"HomeMade","Uncooked"}. 

을받을 필요가 기반 범주 목록이 있습니다.

이것에 대해 linq 쿼리 논리가 있어야합니까?

감사합니다.

답변

0

당신은 단순히 Where으로 필터링 할 수 있습니다

List<Product> productList = GetProducts(); 
var filteredProducts = productList 
         .Where(p => p.ProductCategory 
             .All(pc => !filtercategory.Contains(pc.Name))) 
         .ToList(); 

이것은 productList를 필터링하고 제품 만 소요되는 모든 카테고리 이름은 filtercategory에서을 포함하지 있습니다.


나는뿐만 아니라 단체로, LINQ - 투 - SQL이 테스트, 그래서 나는이 또한 엔티티 작동하는지 확인 100 % 아니에요.

+0

Rene Vogt : 고맙습니다. 올바르게 작동합니다. 당신이 할 수있는 편집 하나. '(pc.Name))와 같은 대괄호를 하나 더 넣으십시오.) ToList()' – Hector

+0

하지만 고마워요. 내 머리를 아프게했다. :-) – Hector

관련 문제