私は宿題を持っています。そこではIEnumerable<Movie>
、映画が含まれている場所が与えられますHashSet<string> genres
(「コメディ」、「ドラマ」などの文字列で表されるジャンルのリスト)。
LINQとgroupbyを使用して、映画をジャンル別に並べ替えるにはどうすればよいですか?(作成IGrouping<string, IEnumerable<Movie>>
)
最初に映画を移動/ジャンルのペアにフラット化してから、グループ化するようです。
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);