我有一份作业,给我们IEnumerable<Movie>
其中电影包含HashSet<string> genres
(由“Comedy”,“Drama”等字符串表示的流派列表。)
如何使用LINQ和group by按类型对电影进行排序?
(创建IGrouping<string, IEnumerable<Movie>>
)
答案 0 :(得分:6)
听起来你想首先将电影压缩为移动/类型对,然后组:
var grouped = from movie in movies
from genre in movie.Genres
group movie by genre;
或者避免使用查询表达式:
var grouped = movies.SelectMany(movie => move.Genres,
(movie, genre) => new { movie, genre })
.GroupBy(pair => pair.genre, pair => pair.movie);