码迷,mamicode.com
首页 > 编程语言 > 详细

【译】使用 LINQ 合并 IEnumerable 序列

时间:2019-01-13 02:01:25      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:enc   php   files   基于   tuple   number   width   pack   tip   

Zip 方法允许把序列中的元素通过交织将 IEnumerable 序列连接在一起。
Zip 是一种基于 IEnumerable 的扩展方法。
例如,将具有年龄的名称集合压缩在一起:

  var names = new[] { "John", "Sarah", "Amrit" };

  var ages = new[] { 22, 58, 36 };

  var namesAndAges = names.Zip(ages, (name, age) => name + " " + age);

将会生成包含三个元素的 IEnumerable <string>:

技术分享图片
image.png

如果一个序列比另一个序列短,当到达较短序列的末尾时,“压缩”将会停止。因此,如果添加了一个额外的名称“Bob”:

  var names = new [] {"John", "Sarah", "Amrit", "Bob"};

结果会和之前一样,“Bob”不会被使用,因为并没有与之匹配的年龄。
Lambdas 也可用于创建对象;下面的示例演示如何创建一个携带两个元素组成元组的 IEnumerable 对象。
两个元素的元组的枚举:

  var names = new[] { "John", "Sarah", "Amrit" };

  var ages = new[] { 22, 58, 36 };

  var namesAndAges = names.Zip(ages, (name, age) => Tuple.Create(name, age));

这将产生一个 IEnumerable<Tuple<String, Int32> 对象,它包含三个元组,每个元组都包含一个名称和年龄。

《C# Tips》Merging IEnumerable Sequences with LINQ

【译】使用 LINQ 合并 IEnumerable 序列

标签:enc   php   files   基于   tuple   number   width   pack   tip   

原文地址:https://www.cnblogs.com/liqingwen/p/10261437.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!