列表<T> 项顺序
List<T> items order
通用列表在添加和迭代值时是否保证其项目的顺序?
如果是这样,它是在类型的定义中还是只是对通常行为的假设?
更新:
看起来订单暂时保留;官方文档中没有这方面的踪迹,因此我认为它将来可能会发生变化并且不会出现在 List 的定义中。
还有没有简单的集合保证顺序? (不包括专门用于其他用途的Stack/Queue)
List<T>
将保持您将项目放入列表的顺序,但是,其他代码可能会在您迭代之前修改该顺序。根据您的用途,您可以考虑使用 Queue<T>
https://msdn.microsoft.com/en-us/library/7977ey2c(v=vs.110).aspx
看起来这是一个安全的假设。
尽管如此,对于关键应用程序 (defence/finance),可能值得使用 LinkedList 或将 List 子类化以使其面向未来,以防新框架更改实现。
GetEnumerator 将始终return 列表中的第一个元素,但没有书面保证下一个元素必须是列表中的第二个。
通用列表在添加和迭代值时是否保证其项目的顺序?
如果是这样,它是在类型的定义中还是只是对通常行为的假设?
更新:
看起来订单暂时保留;官方文档中没有这方面的踪迹,因此我认为它将来可能会发生变化并且不会出现在 List 的定义中。
还有没有简单的集合保证顺序? (不包括专门用于其他用途的Stack/Queue)
List<T>
将保持您将项目放入列表的顺序,但是,其他代码可能会在您迭代之前修改该顺序。根据您的用途,您可以考虑使用 Queue<T>
https://msdn.microsoft.com/en-us/library/7977ey2c(v=vs.110).aspx
看起来这是一个安全的假设。
尽管如此,对于关键应用程序 (defence/finance),可能值得使用 LinkedList 或将 List 子类化以使其面向未来,以防新框架更改实现。
GetEnumerator 将始终return 列表中的第一个元素,但没有书面保证下一个元素必须是列表中的第二个。