zoukankan      html  css  js  c++  java
  • 【译】使用 LINQ 合并 IEnumerable 序列

    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
    网址:https://leanpub.com/cstips

  • 相关阅读:
    redis入门
    elementui入门
    1387:搭配购买(buy)
    P1536 村村通
    1388:家谱(gen)
    1389:亲戚
    1385:团伙(group)
    P1305 新二叉树
    P5076 【深基16.例7】普通二叉树(简化版)
    二叉搜索树(BST)模版
  • 原文地址:https://www.cnblogs.com/liqingwen/p/10261437.html
Copyright © 2011-2022 走看看