列出<t>项目订单

时间:2015-05-29 19:29:15

标签: .net collections

在添加和迭代值时,通用列表是否保证其项目的顺序?

如果是这样,它是在类型的定义中还是只是对通常行为的假设?

更新

现在看来订单仍然存在;在官方文档中没有这方面的痕迹,因此我假设它将来可能会改变,并且不会在List的定义中。

是否有其他简单的收藏品可以保证订单? (不包括专门用于其他用途的堆栈/队列)

2 个答案:

答案 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