使用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
代替List
forlistofGenres
您可以执行以下操作:
var genres = new HashSet<Genre>() { "action", "comedy" };
var movies = _db.Movies.Where(p => genres.Overlaps(p.Genres));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
142777 次 |
最近记录: |