Мені цікаво було про порядок, по якому цикл foreach у C # проходить через System.Collections.Generic.List<T>
об'єкт.
Я знайшов ще одне запитання на ту саму тему, але не відчуваю, що воно відповідає на моє запитання на моє задоволення.
Хтось заявляє, що жоден порядок не визначений. Але, як заявляє хтось інший, порядок, по якому він проходить масив, є фіксованим (від 0 до Length-1). 8.8.4 Заява про прогноз
Також було сказано, що те саме справедливо для будь-яких стандартних класів із порядком (наприклад List<T>
). Я не можу знайти жодної документації, що підтверджує це. Отже, наскільки я знаю, зараз це може працювати так, але, можливо, у наступній версії .NET це буде іншим способом (хоча це може бути малоймовірним).
Я також подивився List(t).Enumerator
документацію без удачі.
Інше пов'язане питання говорить, що для Java це конкретно згадується в документації:
List.iterator()
повертає ітератор над елементами у цьому списку у належній послідовності. "
Я шукаю щось подібне в документації C #.
Заздалегідь спасибі.
Редагувати: Дякую вам за всі ваші відповіді (дивно, як швидко я отримав стільки відповідей). З усіх відповідей я розумію, що List<T>
завжди повторюється в порядку індексації. Але я все одно хотів би бачити чіткий спокій документації про це, подібно до документації Java наList
.