foreach and performance

One statement that I have heard incessantly is that foreach over an array is slower than for (int i = 0; i < array.Length; i++).

Finally, some good people have debunked this myth:

I personally find it SO much nicer to look at code like:

foreach (int i in array)

as opposed to:

for (int i = 0; i < foo.Length; i++)
    int item = foo[index];

mostly because the first code chunk is a lot more compact, and I think more clearly states its purpose.