我有:
IEnumerable<IEnumerable<T>> items;
and I'd like to create:-
IEnumerable<IEnumerable<T>> results;
"results"中的第一项是“items”中每个IEnumerable的第一项的IEnumerable,"results"中的第二项是"items"中每个IEnumerable的第二项的IEnumerable,以此类推。
这些IEnumerables的长度不一定相同。如果在items中的某些IEnumerables在特定索引处没有元素,则我期望在results中匹配的IEnumerable将具有较少的项。
例如:
items = { "1", "2", "3", "4" } , { "a", "b", "c" };
results = { "1", "a" } , { "2", "b" }, { "3", "c" }, { "4" };
编辑:另一个示例(评论中请求):
items = { "1", "2", "3", "4" } , { "a", "b", "c" }, { "p", "q", "r", "s", "t" };
results = { "1", "a", "p" } , { "2", "b", "q" }, { "3", "c", "r" }, { "4", "s" }, { "t" };
我事先不知道有多少个序列,也不知道每个序列中有多少个元素。我可能有1000个包含100万个元素的序列,但我只需要前10个,所以如果可以的话,我想使用源序列的(惰性)枚举。特别是如果可以避免创建新的数据结构。
是否有内置方法(类似于IEnumerable.Zip)可以做到这一点?
还有其他方法吗?
MakeGenericMethod
并获取所需的Zip
方法。 - Mark Hurd