有几个IEnumerable<T>
的实例,我想首先获得每个实例的第一个实例,然后是每个实例的第二个实例,依此类推.
如果它们是列表,我会这样做:
List<List<T>> myLists = ...;
bool iLessThanMaxSize = true;
for (int i=0; iLessThanMaxSize; i++)
{
iLessThanMaxSize = false;
for (int j=0; j<myLists.Count; j++)
{
if (i < myLists[j].Count)
{
iLessThanMaxSize = true;
yield return myLists[j][i];
}
}
}
然而,它们不是列表,而是IEnumerables,这是必不可少的,因为这些项是在繁重的计算中按需计算的,因此一次计算所有项比按需仅获得有限数量的项要花费更长的时间.
我如何才能获得相同的行为,但使用IEnumerable<T>
而不是List<T>
?
Edit:到simultaneously,我指的不是多线程,而是枚举模式,它获取每个集合的第一个,然后是每个集合的第二个,而不是首先通过第一个集合枚举,然后通过第二个集合进行枚举,依此类推(这将连接IEumables).很抱歉给您带来了混乱.