3

私は宿題を持っています。そこではIEnumerable<Movie> 、映画が含まれている場所が与えられますHashSet<string> genres(「コメディ」、「ドラマ」などの文字列で表されるジャンルのリスト)。

LINQとgroupbyを使用して、映画をジャンル別に並べ替えるにはどうすればよいですか?(作成IGrouping<string, IEnumerable<Movie>>

4

1 に答える 1

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);
于 2012-04-22T19:10:28.037 に答える