かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

foreach でループの index を知る方法

前に匿名型を使ってやりましたが Tuple 使った方が今風で値型なのでヒープ的にも優しいということでこうなりますね。

using System;
using System.Linq;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var items = new[]
            {
                "item 1",
                "item 2",
                "item 3",
            };

            foreach (var (item, index) in items.Select((x, i) => (x, i)))
            {
                Console.WriteLine($"{index}: {item}");
            }
        }
    }
}

実行結果。

0: item 1
1: item 2
2: item 3

岩永さんのサイトのほうが詳しいですね。

ufcpp.net