如何在 C# 中进行 Python 的 zip 操作?
Python 的 zip
函数执行以下操作
a = [1, 2, 3]
b = [6, 7, 8]
zipped = zip(a, b)
:
[[1, 6], [2, 7], [3, 8]]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
怎么样 这个?
C# 4.0 LINQ 的新 Zip 运算符
How about this?
C# 4.0 LINQ'S NEW ZIP OPERATOR
解决方案2:与C# 4.0 Zip类似,但可以在C# 3.0中使用它
Solution 2: Similar to C# 4.0 Zip, but you can use it in C# 3.0
这是 Python zip 的更现代的版本:
很容易制作更多扩展来同时处理更多 IEnumerable ,为了简洁起见,我将其保留为 2 和 3 版本。
Here's a more modern rendition of Python's zip:
It's easy to make more extensions that handle more
IEnumerable
s at once, I've kept it to the 2 and 3 versions for brevity.解决方案一:
Solution 1:
另请查看 Cadenza,它具有各种漂亮的实用方法。
具体查看
Cadenza.Collections.EnumerableCoda
< /a>.Also take a look at Cadenza which has all sorts of nifty utility methods.
Specifically look at the Zip extension methods under
Cadenza.Collections.EnumerableCoda
.我刚刚遇到了同样的问题。 .NET库没有提供解决方案,所以我自己做了。这是我的解决方案。
Pivot
方法作为IEnumerable>
的扩展。它要求所有序列的元素具有相同的类型
T
。I just have come across the same problem. .NET library does not offer the solution, so I made it by myself. Here is my solution.
The
Pivot
method is made as extension toIEnumerable<IEnumerable<T>>
.It requires all the sequences' elements to be of the same type
T
.