Top Tier Object
SubTier Objects
SubSubTier Objects 1.1,1.2,1.3 : SubTierId = 2
SubSubTier Objects 2.1,2.2,1.3 : SubTierId = 3
SubTier Objects
SubSubTier Objects 3.1,3.2,3.3 : SubTierId = 1
SubSubTier Objects 4.1,4.2,4.3 : SubTierId = 2
预期的最终结果是获得一个IEnumerable,其中包含1.2,2.3,3.1,4.2,它们代表每个子级的SubTierId。
SubSubTiers mySubSubTier = allTiers.Select(topTier =>
topTier.SubTiers.Where(sbTier => sbTier.Id == topTier.SubTierId));
但是我得到的是这种返回类型。
IEnumerable<IEnumerable<SubSubTier>>
最好的方法是什么,以便我只获得IEnumerable
的{{1}}个?{/ p>
答案 0 :(得分:4)
您可以使用SelectMany代替选择
SubSubTiers mySubSubTier = allTiers.SelectMany(topTier =>
topTier.SubTiers.Where(sbTier => sbTier.Id == topTier.SubTierId));
它会选择合并IEnumerable
而不是IEnumerable
的{{1}}