首页 > 代码库 > foreach 与 for遍历顺序问题

foreach 与 for遍历顺序问题

 

执行 For Each...Next 循环时,在 GetEnumerator 方法返回的枚举数对象的控制下遍历集合。遍历的顺序不是由.NET确定的,而是由枚举数对象的 MoveNext 方法决定的。这意味着可能无法预测 elementvariable 首先返回集合中的哪个元素,也无法预测在某个给定的元素后将返回的下一个元素是哪个元素。

如果代码依赖于以特定顺序遍历集合,则 For Each...Next 循环不是最佳选择,除非您知道该集合公开的枚举数对象的特征。使用其他循环(例如 For...Next 或 Do...Loop)也许可以获得更可靠的结果。