Zip 拡張メソッドで 2 つのシーケンスをマージする
(2017/03/14 11:28:12 created.)
Zip 拡張メソッドは 2 つのシーケンスをマージします。以下にサンプルコードを掲載します。
Program.cs
namespace Tips_Linq
{
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var numbers1 = Enumerable.Range(1, 10);
Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", numbers1));
var numbers2 = Enumerable.Range(11, 10);
Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", numbers2));
var mergedNumbers = numbers1.Zip(numbers2, (x, y) => x + y);
Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", mergedNumbers));
var numbers3 = Enumerable.Range(11, 14);
Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", numbers3));
var mergedNumbers2 = numbers1.Zip(numbers3, (x, y) => x + y);
Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", mergedNumbers2));
Console.ReadKey();
}
}
}
入力引数には 2 つのシーケンスの各要素をどのようにマージするかを指定します。また、長さの異なるシーケンスをマージしようとすると、短いほうの長さに合わせたシーケンスが出力されます。
Tweet