复杂的群体

stu*_*ent 3 .net c# linq group-by

我有一个家庭作业,我们在IEnumerable<Movie> 那里给出了电影所包含HashSet<string> genres的类型(由"喜剧","戏剧"等字符串表示的类型列表).

如何使用LINQ和group by按类型对电影进行排序?(创造IGrouping<string, IEnumerable<Movie>>)

Jon*_*eet 6

听起来你想首先将电影压缩成移动/类型对,然后分组:

var grouped = from movie in movies
              from genre in movie.Genres
              group movie by genre;
Run Code Online (Sandbox Code Playgroud)

或者避免查询表达式:

var grouped = movies.SelectMany(movie => move.Genres,
                                (movie, genre) => new { movie, genre })
                    .GroupBy(pair => pair.genre, pair => pair.movie);
Run Code Online (Sandbox Code Playgroud)