我正在开发一个多方面的引擎。
我有两种类型:
ResultProduct
public int Id { get; set; }
public int Name { get; set; }
public int Brand { get; set; }
[...]
和
Brand
public int Id { get; set; }
public int Name { get; set; }
public IList<Product> Product { get; set; }
[...]
我有一个班级列表。
我的目标是删除ResultProduct中不再包含的所有品牌。 (与其他标准一起)。
我该怎么做?
修改:
感谢pektov的回答。 我想删除所有没有产品的品牌。
我找到了另一个有效的解决方案。
brands = (from brand in brands
where (from res in resultSearch select res.Brand.IdBrand).Contains(brand.IdBrand)
select brand).ToList<Brand>();
我认为您的解决方案会带来更好的性能,您怎么看?
答案 0 :(得分:1)
我不确定我是否完全理解这个问题,我假设您要删除品牌列表中的所有商品,因为没有考虑品牌产品列表的resultProducts中没有该品牌的商品班级
如果是这种情况,您可以像这样使用RemoveAll方法:
List<ResultProducts> products;
List<Brands> brands;
brands.RemoveAll(x=> !products.Exists(y=>y.brand == x.Id)); //returns only brands that don't appear in the products list