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