【发布时间】:2011-05-05 08:22:00
【问题描述】:
myList 中的元素是否总是以相同的顺序访问 For Each 循环(假设我不更改列表)?
Dim myList As New List(Of MyElement)
....
For Each myElem As MyElement In myList
' yadda yadda yadda
Next
【问题讨论】:
myList 中的元素是否总是以相同的顺序访问 For Each 循环(假设我不更改列表)?
Dim myList As New List(Of MyElement)
....
For Each myElem As MyElement In myList
' yadda yadda yadda
Next
【问题讨论】:
是的,它们将始终按自然列表顺序排列。
For Each 基本上是一个围绕调用 GetEnumerator()/MoveNext()/Current 的语言构造函数,因此排序取决于 List(Of T) 类 - 它确实保留了排序。
举一个对比的例子,如果您在 Dictionary(Of TKey, Of TValue) 中迭代键/值对,则顺序不保证,并且允许添加或删除一个条目来更改整个排序.
【讨论】: