>>399
メソッド名はForEachでいいと思う。
C#だとWithIndexみたいなのは付けずにオーバーロードを使うほうが自然。

public static class EnumerableEx
{
  public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
  {
    foreach (var item in source)
    {
      action(item);
    }
  }
  public static void ForEach<T>(this IEnumerable<T> source, Action<T, int> action)
  {
    int index = 0;
    foreach (var item in source)
    {
      action(item, index++);
    }
  }
}