【发布时间】:2010-11-30 08:17:55
【问题描述】:
我有一个电影列表
List<Movie> MovieList
我有一个选定类别的列表
List<string> SelCat
假设我想从匹配 2 个类别的电影列表中进行选择,如下面的 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);
但它的作用类似于 OR 查询,而不是 AND。我希望它选择所有具有动作和戏剧类别的电影。
顺便说一句:Movie.Categories 是一个字符串列表。并且 Movie.Categories 必须包含 SelCat 中的项目。
如何使用 Linq to Objects 实现这一点?
【问题讨论】:
-
MovieList.Category = 'Action' AND MovieList.Category = 'Drama',你不是说 MovieList.Category = 'Action' OR MovieList.Category = 'Drama'
-
不,MovieList.Categories 是一个列表
-
您想查找所有动作片和剧情片吗?所以你不想要一部只有 DRAMA 的电影吗?
-
是的。所有有动作和戏剧的电影。或 SelCat 字符串列表中的任何内容。
标签: c# linq linq-to-objects