如何获取对象列表中包含的所有子对象的列表?

时间:2013-10-11 12:28:09

标签: c# linq

如果您有产品清单,并且每个产品都有一个类别列表。

如何获取产品使用的食谱清单?

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

如何获得“书籍”,“菜肴”,“电子产品”列表

1 个答案:

答案 0 :(得分: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