在 Python 中有一个非常简洁的函数叫做 zip
可以用来同时遍历两个列表:
list1 = [1, 2, 3]
list2 = ["a", "b", "c"]
for v1, v2 in zip(list1, list2):
print v1 + " " + v2
上面的代码应该产生以下结果:
1 a 2 b 3 c
我想知道在 .Net 中是否有类似的方法可用?我正在考虑自己编写它,但如果它已经可用就没有意义。
最佳答案
更新:它在 C# 4 中内置为 System.Linq.Enumerable.Zip Method
这是一个 C# 3 版本:
IEnumerable<TResult> Zip<TResult,T1,T2>
(IEnumerable<T1> a,
IEnumerable<T2> b,
Func<T1,T2,TResult> combine)
{
using (var f = a.GetEnumerator())
using (var s = b.GetEnumerator())
{
while (f.MoveNext() && s.MoveNext())
yield return combine(f.Current, s.Current);
}
}
放弃了 C# 2 版本,因为它已经过时了。
关于.net - .Net 中是否有类似 zip 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/101174/