前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Enumerable#zip特性

Enumerable#zip特性

作者头像
张善友
发布2018-01-30 17:25:32
7620
发布2018-01-30 17:25:32
举报
文章被收录于专栏:张善友的专栏张善友的专栏

看到文章Zip operator in Linq with .NET 4.0 Enumerable#zip是Ruby 1.8开始出现的特性,.NET 4/Silverlight 4也有这样的特性。与 Ruby 类似,Enumerable 同样关注你的感受,它为一些行为提供了多个名称。这主要是为了降低学习难度: 你可以根据你的技术背景选择熟悉的名称。

将两个序列按照顺序配对合并(想像一下拉链拉上的情形)为一个包含一序列元组的数组。 元组由每个原始序列的具有相同索引的元素组合而成,在System.Linq命名空间下,也就是一个Linq操作。

下面的代码示例演示如何使用 Zip<TFirst, TSecond, TResult> 方法来合并两个序列。

      int[] numbers = { 1, 2, 3, 4 };       string[] words = { "one", "two", "three" };

      var numbersAndWords = numbers.Zip(words, (first, second) => first + " " + second);

      foreach (var item in numbersAndWords)          outputBlock.Text += item + "\n";

      // This code produces the following output:

      // 1 one       // 2 two       // 3 three

此方法通过使用延迟执行实现。即时返回值为一个对象,该对象存储执行操作所需的所有信息。只有通过直接调用对象的 GetEnumerator 方法或使用 Visual C# 中的 foreach(或 Visual Basic 中的 For Each)来枚举该对象时,才执行此方法表示的查询。

该方法将第一个序列中的每个元素与第二个序列中有相同索引的元素合并。如果该序列不具有相同数目的元素,则直到它到达其中一个的末尾,该方法才合并序列。例如,如果一个序列有三个元素,另一个序列具有四个元素,那么结果序列将只有三个元素。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2010-06-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档