インデックス付 ForEach が欲しい!

コレクションの全要素に対して処理を行う場合は 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 ほどキレイにはならないなぁ。