Мне было интересно узнать, в каком порядке цикл foreach в C # проходит через System.Collections.Generic.List<T>
объект.
Я нашел еще один вопрос по той же теме, но не думаю, что он удовлетворит меня ответом на мой вопрос.
Кто-то заявляет, что порядок не определен. Но, как утверждает кто-то другой, порядок обхода массива фиксирован (от 0 до Length-1). 8.8.4 Оператор foreach
Также было сказано, что то же самое верно для любых стандартных классов с порядком (например List<T>
). Я не могу найти никакой документации, подтверждающей это. Итак, насколько я знаю, сейчас это может работать так, но, возможно, в следующей версии .NET все будет по-другому (хотя это может быть маловероятно).
Я также безуспешно смотрел List(t).Enumerator
документацию.
Другой связанный с этим вопрос гласит, что для Java это специально упоминается в документации:
List.iterator()
возвращает итератор по элементам в этом списке в правильной последовательности. "
Я ищу что-то подобное в документации по C #.
Заранее спасибо.
Изменить: Спасибо вам за все ваши ответы (удивительно, как быстро я получил так много ответов). Из всех ответов я понимаю, что List<T>
всегда выполняется итерация в порядке индексации. Но я все же хотел бы видеть четкую документацию, заявляющую об этом, аналогичную документации по JavaList
.