LINQ查询:从一组对象中聚合子集

时间:2018-09-06 05:35:43

标签: c# linq

如果我有一个ArtGallery对象,其中包含一组Exhibits,每个对象都包含一组Artworks,我将如何构造LINQ查询以返回包含所有{ Artworks中的{1}}。

我可以通过以下方式在没有LINQ的情况下做到这一点:

ArtGallery

只是想知道是否有更优雅的东西

2 个答案:

答案 0 :(得分:1)

您可以使用linq来获取它。

artworks.Exhibits.SelectMany(x => x.ArtWorks).ToList();

答案 1 :(得分:1)

SelectMany将把每个展览品投影到一组艺术品中,然后将所有藏品展平到一个:

var artworkSet = ArtGallery.Exhibits.SelectMany(x => x.Artworks);