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)
是的,它们将始终处于自然列表顺序中.
For Each
基本上是一个围绕调用GetEnumerator()
/ MoveNext()
/ 的语言构造函数Current
,所以排序取决于List(Of T)
类 - 这确实保留了排序.
举一个对比鲜明的例子,如果你遍历键/值对的Dictionary(Of TKey, Of TValue)
话,命令不能保证,添加或移除一个条目被允许改变整个排序.