每个代理列表是否总是以相同的顺序访问元素?

Joh*_*ohn 0 vb.net foreach list

是否myList总是以For Each循环的相同顺序访问元素(假设我不改变列表)?

Dim myList As New List(Of MyElement)

....

For Each myElem As MyElement In myList

    ' yadda yadda yadda

Next
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

是的,它们将始终处于自然列表顺序中.

For Each基本上是一个围绕调用GetEnumerator()/ MoveNext()/ 的语言构造函数Current,所以排序取决于List(Of T)类 - 这确实保留了排序.

举一个对比鲜明的例子,如果你遍历键/值对的Dictionary(Of TKey, Of TValue)话,命令不能保证,添加或移除一个条目被允许改变整个排序.