0
我正在篩選基於子集合的集合。基於另一個集合(子)篩選linq集合(父)
我的型號如下:
首先
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public double Price { get; set; }
public double Stock { get; set; }
public Category Category { get; set; }
public string ImagePath { get; set; }
}
和第二
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public bool isSelected { get; set; }
}
,併爲它傳遞給我的看法
public class ProductsVM
{
public IList<Item> items { get; set; }
public IList<Category> categories { get; set; }
}
和我的行動一個ViewModel方法我在那裏得到類別列表(複選框在視圖中)。
下面的代碼在我刪除未選中的類別時成功運行。
productsVm.categories.RemoveAll(x => x.isSelected == false);
現在我想要的項目只有選定的類別。
我已經試過
List<Item> items = db.Items.ToList();
List<Item> filter = items.Where(x => !categories.Any(y=> y.Id == x.Category.Id)).ToList();
和
和
List<Item> items = db.Items.ToList();
List<Item> filter = items.RemoveAll(x => productsVm.categories.Contains(x.Category.Id));
哈你試過items.Where(我=> i.Category.isSelected)? –
這就是另一個問題,我認爲沒有返回我的ViewModel,它只返回產品中的類別VM。 –