Логично предположить, что цикл foreach в С# будет вычисляться в том же порядке, что и цикл увеличения. Экспериментально, это так. Однако на сайте MSDN такого подтверждения нет.
Это просто такой очевидный ответ, что они не думали размещать эту информацию на сайте? Или есть вероятность, что он будет вести себя хаотично?