.net - .Net 中是否有类似 zip 的方法?

标签 .net python list iteration

在 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/

相关文章:

c# - 获取 .NET 应用程序的当前/事件安全区域?

.net - 无法连接到由 docker compose 启动的 .net 容器

Python 脚本 - 在本地环境中工作但不在开发服务器上工作

python - 使用 tweepy 进行推文直播

python - Django 中的cache.fetch?

python - 如何删除 Python 列表中某个值的所有出现?

python - 如果 pandas series 的值是一个列表,如何获取每个元素的子列表?

c# - SQL Azure 每 10 秒延迟响应一次

C# Windows 窗体 - 在控件外部单击后隐藏控件

python - 要在 Python 中列出的字符串