コレクションの全要素に対して処理を行う場合は foreach を使っていますが、たま〜にインデックスが欲しくなる時があります。Ruby みたいなインデックス付 ForEach があればいいのに。
public static class EnumerableExtension { public static void ForEachWithIndex<T>(this IEnumerable<T> collection, Action<T, int> block) { int index = 0; foreach (var element in collection) { block(element, index++); } } }
items.ForEachWithIndex((item, index) => {
Console.WriteLine("{0}:{1}", index, item);
});
拡張メソッドでそれっぽいものを作ってみたけど、Ruby ほどキレイにはならないなぁ。