2016-06-14 134 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

相關問題