Complicated group by
.net, c#, group-by, linq
Solution
It sounds like you want to flatten out the movies into move/genre pairs first, then group:
var grouped = from movie in movies
from genre in movie.Genres
group movie by genre;
Or avoiding query expressions:
var grouped = movies.SelectMany(movie => move.Genres,
(movie, genre) => new { movie, genre })
.GroupBy(pair => pair.genre, pair => pair.movie);
Problem
I have a homework, where we are given `IEnumerable<Movie>` where Movie contains `HashSet<string> genres` (list of genres represented by string like "Comedy", "Drama" etc.). How to use LINQ and group by to sort movies by genre? (create `IGrouping<string, IEnumerable<Movie>>`)