如何使用LINQ从IEnumerable <t>的属性中获取单个IENumerable <x>?</t> </x>

时间:2012-12-11 15:38:59

标签: c# .net linq

考虑以下数组:

class B { }

class A 
{
    IEnumerable<B> C { get; }
}

IEnumerable<A> array;

我最终需要一个IEnumerable<B>。我最终得到了IEnumerable<IEnumerable<B>>

var q = array.Select(a => a.C);

如何解开阵列?

2 个答案:

答案 0 :(得分:7)

您只需使用SelectMany

IEnumerable<B> allBs = array.SelectMany(a => a.C);

答案 1 :(得分:3)

使用SelectMany

var q = array.SelectMany(a => a.C);

这将为您提供IEnumerable<B>,其中包含C中每个项目的array属性的展平内容。