Всегда ли каждый участник, действующий в списке, посещает элементы в одном и том же порядке? - PullRequest
0 голосов
/ 05 ноября 2010

Будут ли элементы в myList всегда посещаться в одном и том же порядке с помощью цикла For Each (если я не изменяю список)?

Dim myList As New List(Of MyElement)

....

For Each myElem As MyElement In myList

    ' yadda yadda yadda

Next

1 Ответ

6 голосов
/ 05 ноября 2010

Да, они всегда будут в естественном порядке списка.

For Each - это, по сути, языковой конструктор для вызова GetEnumerator() / MoveNext() / Current, поэтому порядок соответствует классу List(Of T), который действительно сохраняет порядок.

Чтобы привести контрастный пример, если вы перебираете пары ключ / значение в Dictionary(Of TKey, Of TValue), тогда порядок не гарантирован, а добавление или удаление одной записи может изменить весь порядок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...