Как создать список из встроенных списков в объекте в C # - PullRequest
1 голос
/ 13 июля 2011

У меня есть что-то вроде этого:

class Movie
{
    public string Title;
    public List<string> Genres = new List<string>();
}


static void Main(string[] args)
{
    List<string> genreList = new List<string();
        genreList.Add("Crime");
        genreList.Add("Thriller");
    var movies = new List<Movie>();
    movies.Add(new Movie { Title = "Pulp Fiction", Genres = genreList });

    genre.List.Clear();
    genrelist.Add("Adventure");
    genrelist.Add("Sci-Fi");
    movies.Add(new Movie { Title = "Back to the Future" Genres = genreList });

    genre.List.Clear();
    genrelist.Add("Adventure");
    genrelist.Add("Crime");
    genrelist.Add("Sci-Fi");
    movies.Add(new Movie { Title = "The Dark Knight", Genres = genreList });
}

Как я могу запросить список фильмов, чтобы получить список всех жанров в переменных жанров?Я хочу, чтобы результат был: Приключенческий криминал Sci-Fi Thriller

Спасибо, как всегда!

1 Ответ

3 голосов
/ 13 июля 2011
using System.Linq;

movies.SelectMany(m => m.Genres).Distinct();

Также обратите внимание на комментарий Cybernate о всех фильмах, имеющих один и тот же список.Попробуйте инициализировать как,

movies.Add(new Movie { 
   Title = "Pulp Fiction",
   Genres = { "Crime", "Thriller" } // calls Add on existing List
});
// or
// assign a copy of genreList
genreList.Clear();
genrelist.Add("Adventure");
genrelist.Add("Sci-Fi");
movies.Add(new Movie { Title = "Back to the Future", Genres = genreList.ToList() });
...