复杂的群体

时间:2012-04-22 19:05:35

标签: c# .net linq group-by

我有一份作业,给我们IEnumerable<Movie> 其中电影包含HashSet<string> genres(由“Comedy”,“Drama”等字符串表示的流派列表。)

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

1 个答案:

答案 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);