2012-04-22 73 views
3

我有作业,在那里给我们IEnumerable<Movie> 其中电影包含HashSet<string> genres(类似“喜剧”,“戏剧”等字符串表示的流派列表))。复杂组

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

+0

我只是喜欢推荐这个网站的这个和其他Linq的问题:http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b – Stian 2012-04-22 19:09:13

回答

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); 
+0

工程很好,非常感谢,不会找出一个。 – student 2012-04-23 22:48:07