2013-10-11 2 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

Nice, работает как очарование. –

+0

@MalcolmFrexner: Рад, что я мог бы помочь. Благодарю. –

Смежные вопросы