Jad*_*ias 13 .net c# python linq zip
Python的zip功能执行以下操作:
a = [1, 2, 3]
b = [6, 7, 8]
zipped = zip(a, b)
Run Code Online (Sandbox Code Playgroud)
结果
[[1, 6], [2, 7], [3, 8]]
Run Code Online (Sandbox Code Playgroud)
怎么样这个?
C#4.0 LINQ的新ZIP操作员
public static IEnumerable<TResult> Zip<TFirst, TSecond, TResult>(
this IEnumerable<TFirst> first,
IEnumerable<TSecond> second,
Func<TFirst, TSecond, TResult> func);
Run Code Online (Sandbox Code Playgroud)
解决方案2:与C#4.0 Zip类似,但您可以在C#3.0中使用它
public static IEnumerable<TResult> Zip<TFirst, TSecond, TResult>(
this IEnumerable<TFirst> first,
IEnumerable<TSecond> second,
Func<TFirst, TSecond, TResult> func)
{
using(var enumeratorA = first.GetEnumerator())
using(var enumeratorB = second.GetEnumerator())
{
while (enumeratorA.MoveNext())
{
enumeratorB.MoveNext();
yield return func(enumeratorA.Current, enumeratorB.Current);
}
}
}
Run Code Online (Sandbox Code Playgroud)