在添加和迭代值时,通用列表是否保证其项目的顺序?
如果是这样,它是在类型的定义中还是只是对通常行为的假设?
更新
现在看来订单仍然存在;在官方文档中没有这方面的痕迹,因此我假设它将来可能会改变,并且不会在List的定义中。
是否有其他简单的收藏品可以保证订单? (不包括专门用于其他用途的堆栈/队列)
答案 0 :(得分:1)
看起来这是一个安全的假设。
尽管对于关键应用程序(防御/财务),可能值得使用LinkedList或对List进行子类化,以便在新框架更改实现时使其面向未来。
GetEnumerator将始终返回List中的第一个元素,但没有书面保证下一个元素必须是List中的第二个元素。
答案 1 :(得分:-1)
List<T>
将维护您将项目放入列表的顺序,但是,其他代码可以在您迭代它之前修改顺序。根据您的使用情况,您可以考虑使用Queue<T>
https://msdn.microsoft.com/en-us/library/7977ey2c(v=vs.110).aspx