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

相关问题