首页 / C#开发 / 正文

[LINQ].NET/C#应用程序开发中如何使用LINQ查询集合中元素的某个属性值在另外一个集合中存在的子集?

2956 发布于: 2018-04-23 读完约需2分钟

问题描述

在.NET/C#应用程序开发中,当前有一个泛型集合List<T>,如何使用LINQ查询这个集合List中元素的某个属性值在另外一个集合中存在的子集合呢?

比如有类似的伪代码:

List<Genres> listofGenres = new List<Genre>() { "action", "comedy" });   
var movies = _db.Movies.Where(p => p.Genres.Any() in listofGenres);

以上代码的解释:

listofGenres代表的是一个电影种类的集合,当前有两种类型:动作片,喜剧片
movies是从数据库读取出来的电影列表,并且需要使用LINQWhere()方法来筛选电影列表中每部电影的种类在listofGenres集合中。

方案一

使用LINQIntersect(...)方法,如下:

var movies = _db.Movies.Where(p => p.Genres.Intersect(listOfGenres)).Any();

或者

var movies = _db.Movies.Any(p => p.Genres.Intersect(listOfGenres));

方案二

使用LINQContains(...)方法,如下:

var movies = _db.Movies.Where(p => p.Genres.Any(x => listOfGenres.Contains(x));

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: [MySQL]MySQL数据库中如何使用SQL语句查看某个数据库或者所有数据库中数据表占用的存储空间大小?

下一篇: [MySQL]MySQL数据库中如何统计一段时间内以某个字段分组的年/月总数?

本文永久链接码友网 » [LINQ].NET/C#应用程序开发中如何使用LINQ查询集合中元素的某个属性值在另外一个集合中存在的子集?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册