for WPF developers
Home Profile Tips 全記事一覧

Zip 拡張メソッドで 2 つのシーケンスをマージする

(2017/03/14 11:28:12 created.)

Zip 拡張メソッドは 2 つのシーケンスをマージします。以下にサンプルコードを掲載します。

Program.cs
  1. namespace Tips_Linq
  2. {
  3.     using System;
  4.     using System.Linq;
  5.  
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var numbers1 = Enumerable.Range(1, 10);
  11.             Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(",  ", numbers1));
  12.  
  13.             var numbers2 = Enumerable.Range(11, 10);
  14.             Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", numbers2));
  15.  
  16.             var mergedNumbers = numbers1.Zip(numbers2, (x, y) => x + y);
  17.             Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", mergedNumbers));
  18.  
  19.             var numbers3 = Enumerable.Range(11, 14);
  20.             Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", numbers3));
  21.  
  22.             var mergedNumbers2 = numbers1.Zip(numbers3, (x, y) => x + y);
  23.             Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", mergedNumbers2));
  24.  
  25.             Console.ReadKey();
  26.         }
  27.     }
  28. }


入力引数には 2 つのシーケンスの各要素をどのようにマージするかを指定します。また、長さの異なるシーケンスをマージしようとすると、短いほうの長さに合わせたシーケンスが出力されます。