C#

【C#】LINQを使用して要素のindexを取得する方法

C#のLINQで便利な小技の一つに要素のインデックスを取得する方法があります。忘れがちなので、覚えておいて損はありません。コレクションの各要素のインデックスを取得するには、Select句を使うことで可能となります。

var list = new List<int>()
{
    1, 2, 3, 4, 5,
};

//Tupleを生成
var indexList = list
    .Select((item, index) => (item, index))
    .ToList();
indexList.ForEach(tpl =>
{
    Console.WriteLine($"index={ tpl.index } : { tpl.item.ToString() }");
    //index=0 : 1
    //index=1 : 2
    //index=2 : 3
    //index=3 : 4
    //index=4 : 5
});

上記のサンプルからも分かる通り、C#のLINQにおけるSelect句は、第二引数が要素のインデックスとして渡されます。この特性が意外と忘れがちですが、現場ではよく重宝しますので覚えておきましょう。なおインデックス値なので番号は「0」スタートであることも忘れないようにしてください。

古川 智大

GENESIS株式会社の代表取締役。東京でエンジニアとなった後、奈良県に移住してフリーランスエンジニアとして開業。2023年4月より奈良県を拠点としたGENESIS株式会社を創業。主にビジネスロジックを扱うミドルウェアの開発を主戦場としています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Back to top button