使用linq,如何检索其属性列表与另一个列表匹配的项目列表?
拿这个简单的例子和伪代码:
List<Genres> listofGenres = new List<Genre>() { "action", "comedy" });
var movies = _db.Movies.Where(p => p.Genres.Any() in listofGenres);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 192
听起来像你想要的:
var movies = _db.Movies.Where(p => p.Genres.Intersect(listOfGenres).Any());
Run Code Online (Sandbox Code Playgroud)
Bro*_*ass 59
您可以使用以下Contains查询:
var movies = _db.Movies.Where(p => p.Genres.Any(x => listOfGenres.Contains(x));
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您使用HashSet代替ListforlistofGenres您可以执行以下操作:
var genres = new HashSet<Genre>() { "action", "comedy" };
var movies = _db.Movies.Where(p => genres.Overlaps(p.Genres));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
142777 次 |
| 最近记录: |