【C#】foreachで今のループが何回目なのか知りたい

foreachループ処理で今が何回めのループなのかを知りたい時があります。

ループの外でカウント用の変数を宣言して、ループするたびにカウントアップをしていくことで実現できますけど、もっとスマートにやりたいところです。

具体的にはカウント用に一時変数なんて使わずに、ループのIndexを取得したいわけです。

LINQのSelect拡張メソッド

LINQのSelect拡張メソッドを使えば、以下のようにループのインデックスを取得できました。

C# 7.0 以降だと「値タプル」という機能でもっとスマートに書けるみたいです。