2011-07-13 19 views
1

我有這樣的事情:如何在C#中的對象創建嵌入式列出了一個清單

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 }); 
} 

我如何查詢的電影名單,以獲得流派變量中的所有類型的列表?我想輸出是: 冒險 犯罪 科幻驚悚

感謝一如既往!

+3

'genreList.Clear'將實際上清除前一個'movie.Genres'中的條目。 – Chandu

回答

3
using System.Linq; 

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

另外,請注意Cyber​​nate對所有具有相同列表的電影的評論。嘗試初始化,例如:

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() }); 
+0

完美,謝謝! – Dizzy49

相關問題