EntitySet <IEnumerable <T >>到IEnumerable <T>

rud*_*nev 4 linq

我有一个

 EntitySet<IEnumerable<T>>
Run Code Online (Sandbox Code Playgroud)

从某些查询返回并需要将其强制转换为

IEnumerable<T>. 
Run Code Online (Sandbox Code Playgroud)

我可以做吗?

Dan*_*ker 8

EntitySet<IEnumerable<T>>实施IEnumerable<IEnumerable<T>>.所以你可以这样做:

IEnumerable<T> flattenedList = entitySet.SelectMany(e => e);
Run Code Online (Sandbox Code Playgroud)

看起来有点奇怪,但是SelectMany从列表中的每个项目获取一个"子列表"的函数,然后将所有子列表连接成一个列表.在这种情况下,列表中的每个项目都是一个列表,因此lambda很好而且很短.