List<T>.ForEach
будет идти в том же порядке, что и обычный цикл foreach
, что также является естественным порядком списка.
Да, в документации об этом не говорится, но это очевидное поведение, и я думаю, что вполне разумно полагаться на то, что оно не меняется.
(Теперь Parallel.ForEach
- это другое дело, конечно.)