Enumerable.Select メソッドに 2 引数の関数を渡す

Enumerable.Select メソッドには、2 つの引数を受け取る関数を渡すことができます。2 番目の引数には、要素のインデックスが渡されます。

サンプル

配列の要素とインデックスをペアにしたリストを返すサンプルです。

using System;
using System.Collections.Generic;
using System.Linq;

class Select {
    static void Main() {
        int[] xs = { 34, -90, 8, 23 };

        // 1 引数関数を渡す
        var a = xs.Select(x => x+1);
        Console.WriteLine(string.Join(", ", a));

        // 2 引数関数を渡す
        var b = xs.Select((x, index) => Tuple.Create(index, x));
        Console.WriteLine(string.Join(", ", b));
    }
}

実行結果です。

5, -89, 9, 24
(0, 34), (1, -90), (2, 8), (3, 23)