我有一张电影单子
List<Movie> MovieList
我有一个选定类别的列表
List<string> SelCat
假设我想从电影列表中选择与两个类别匹配的内容,如下面的sql语句:
SELECT * FROM MovieList WHERE MovieList.Category = 'Action' AND MovieList.Category = 'Drama'
我可以和Linq接近,就像这样:
var q = (from b in MovieList where b.Categories.Any(p=> SelCat.Contains(p)) select b);
但它的行为像一个或查询,而不是一个和。我要它选择所有有动作和戏剧类型的电影。
顺便说一句:电影。类别是一个字符串列表。和电影。类别必须包含selcat中的项。
如何使用linq to对象实现这一点?
最佳答案
var q = from m in MovieList where SelCat.All(c => m.Categories.Contains(c))
非常接近你用英语描述问题的方式:
选择电影类别包含
SelCat
中所有类别的电影。