我想知道 C# 中的 foreach 循环遍历System.Collections.Generic.List<T>
对象的顺序。
我发现了另一个关于同一主题的问题,但我觉得它回答的问题令我满意。
有人说没有定义顺序。但正如其他人所说,它遍历数组的顺序是固定的(从 0 到 Length-1)。8.8.4 foreach 语句
也有人说,这同样适用于任何带有顺序的标准类(例如List<T>
)。我找不到任何文档来支持它。所以据我所知,它现在可能会这样工作,但也许在下一个 .NET 版本中它会有所不同(即使它可能不太可能)。
我还List(t).Enumerator
没有运气地查看了文档。
另一个相关问题指出,对于 Java,它在文档中特别提到:
List.iterator()
以正确的顺序返回此列表中元素的迭代器。”
我正在 C# 文档中寻找类似的东西。
提前致谢。
编辑:谢谢你们所有的回答(很惊讶我得到这么多回复的速度)。我从所有答案中了解到的是,List<T>
它总是按其索引的顺序进行迭代。但我仍然希望看到明确说明这一点的文档,类似于List
.