C#でforeachを使用してループを行うと、シンプルな表記で集合内のデータを処理する事ができるので便利ですが、何番目の値を処理しているかのループカウンタが無いのが不便です。 このような場合は、以下のようにSelect()メソッドを使用すると処理中データのindexを取得できます。 static void Main(string[] args) { string nameArray = new string[] { "alice", "bob", "charlie", "dave" }; foreach ( var nameObj in nameArray.Select( (value, index) => new { value, index } ) ) { // nameObjのメンバであるindexよりループカウンタを取得可能 Console.WriteLine( "{0}人目: 名