normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Zipを使ってみる

AsParallelと同じく、.NET4.0betaからの回し者Zipを使ってみた罠。
Haskellとかを使ったことのある人なら、メソッド名でイメージがつくんじゃないかと。では、コード例。

class Program
{
    static void Main(string[] args)
    {
        var range1 = Enumerable.Range(0, 5);
        var range2 = Enumerable.Range(0, 3);
        var result = range1.Zip(range2, (num1, num2) => num1 * num2);
        foreach (var num in result)
        {
            Console.WriteLine(num);
        }
        Console.WriteLine("終わり");
        Console.ReadLine();
    }
}
0
1
4
終わり

二つの長さの異なるコレクションに対して、長さが一致する部分までの処理を行える様子。
無限配列とか渡したらどうなるんだろう…。