我想知道C#中的foreach循环遍历一个System.Collections.Generic.List<T>对象的顺序.
我发现了关于同一主题的另一个问题,但我觉得它不能满足我的问题.
有人说未定义任何订单.但正如其他人所说,它遍历数组的顺序是固定的(从0到长度-1).8.8.4 foreach声明
还有人说,对于任何带有订单的标准类(例如List<T>)也是如此.我找不到任何文件来支持这一点.所以我知道它现在可能会起作用,但也许在下一个.NET版本中它会有所不同(即使它可能不太可能).
我List(t).Enumerator没有运气也查看了文档.
另一个相关问题表明,对于Java,它在文档中特别提到:
List.iterator()以适当的顺序返回此列表中元素的迭代器."
我在C#文档中寻找类似的东西.
提前致谢.
编辑:感谢所有人的所有答案(令人惊讶的是我收到了如此多的回复).我从所有答案中理解的是,List<T>它总是按照索引的顺序迭代.但我仍然希望看到明确的文档和平,说明这一点,类似于Java文档List.
Java的foreach循环是从第一个对象开始,以线性方式工作到最后吗?例如
String[] names = new String[] {"Zoe", "Bob", "Charlie", "Alex"};
for(String name : names) {
//do stuff...
}
Run Code Online (Sandbox Code Playgroud)
首先处理字符串"Zoe",然后是"Bob"等吗?没有排序?我自己测试了一下,但没有找到,但我需要保证,在文档中找不到任何东西.