Ric*_*zak 5 c# linq linq-to-objects
我有一份电影清单
List<Movie> MovieList
Run Code Online (Sandbox Code Playgroud)
我有一个选定类别的列表
List<string> SelCat
Run Code Online (Sandbox Code Playgroud)
并说我想从电影列表中选择它匹配2个类别,如下面的SQL语句:
SELECT * FROM MovieList WHERE MovieList.Category = 'Action' AND MovieList.Category = 'Drama'
我可以像linq那样接近linq:
var q = (from b in MovieList where b.Categories.Any(p=> SelCat.Contains(p)) select b);
但它的作用类似于OR查询,而不是AND.我想让它选择所有具有动作和戏剧类别的电影.
BTW:Movie.Categories是一个字符串列表.AND Movie.Categories必须包含SelCat中的项目.
如何使用Linq to Objects实现这一目标?
var q = from m in MovieList where SelCat.All(c => m.Categories.Contains(c))
Run Code Online (Sandbox Code Playgroud)
与您用英语描述问题的内容非常接近:
选择电影类别包含所有类别的电影SelCat.