我正在寻求帮助。 我正在做一个基于MVC的练习。 我的模型包含2个类。 DVD和类别
public class DVD
{
public int ID
{ get; set; }
public string Title
{ get; set; }
public decimal Price
{ get; set; }
public int Quantity
{ get; set; }
public int Duration
{ get; set; }
public string Image
{ get; set; }
public virtual IList<Category> Categories_List
{ get; set; }}
现在作为方法的类别包含以下
public class Category
{
public int Id
{ get; set; }
public string Title
{ get; set; }
public virtual IList<DVD> DVDs
{ get; set; } }
DVD和类别都在Model文件夹下。 我想要做的是在我的类别控制器中创建一个列表(在公共ActionResult详细信息的方法内(int id = 0)) 例如,收集id为1的所有类别的dvds。
我找到了类似的东西,但是当我必须检查DVD的类别ID是否与我正在寻找的那个相同时,我遇到了问题。
Search list of object based on another list of object c#
任何人都可以帮我做吗? 谢谢
答案 0 :(得分:1)
使用LINQ Where
。这将返回与特定类别匹配的电影的调用:
var moviesMatchingCategory = _masterMovieList.Where(ml => ml.Categories_List.Any(cl => cl.Id == categoryIdToCompare)).ToList();
答案 1 :(得分:1)
如果您可以使用linq,这将有所帮助:
public IEnumerable<DVD> FindDvdByCategoryId(int categoryId, IEnumerable<DVD> dvdEnumerable)
{
return dvdEnumerable.Where(dvd => dvd.Categories_List.Any(c => c.Id == categoryId)).ToList();
}
答案 2 :(得分:0)
List<DVD> list = dvds.Where(x=>x.Categories_List.Contains(y=>y.Id==Id)).ToList();
尝试以上方法。