foreachループ処理で今が何回めのループなのかを知りたい時があります。
ループの外でカウント用の変数を宣言して、ループするたびにカウントアップをしていくことで実現できますけど、もっとスマートにやりたいところです。
具体的にはカウント用に一時変数なんて使わずに、ループのIndexを取得したいわけです。
LINQのSelect拡張メソッド
LINQのSelect拡張メソッドを使えば、以下のようにループのインデックスを取得できました。
C# 7.0 以降だと「値タプル」という機能でもっとスマートに書けるみたいです。