2012-04-22 83 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