かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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