2013-10-11 77 views
4

如果您有一個產品的列表,並且每個產品都有一個類別列表。如何獲取包含在對象列表中的所有子對象的列表?

如何獲得產品使用的配件清單?

List<Product> products = new List<Product>(); 

Product product1 = new Product(); 
product1.Categories.Add("Books"); 
product1.Categories.Add("Electronics"); 

Product product2 = new Product(); 
product2.Categories.Add("Dishes"); 
product2.Categories.Add("Books"); 

products.Add(product1); 
products.Add(product2); 

如何獲取列表 「書」, 「菜」, 「電子」

+0

的問題是不同的,那麼http://stackoverflow.com/questions/16297528/find-child-objects-in-list-of-parent-objects-using-linq –

回答

13

您可以使用SelectMany

var result = products.SelectMany(x => x.Categories).Distinct().ToList(); 

這是什麼做的SelectMany我引述MSDN。

Projects each element of a sequence to an IEnumerable(Of T) and flattens the resulting sequences into one sequence.

這裏是一個工作的證明。

enter image description here

+0

尼斯,就像一個魅力。 –

+0

@MalcolmFrexner:很高興能幫到你。謝謝。 –

相關問題