C#List <t>上的元素顺序是否确定?</t>

时间:2010-12-09 21:11:47

标签: c#

我一直都不这么认为,但最近我有必要知道:

如果我按特定顺序向列表中添加元素,我保证会在同一个订单上找到它吗?

谢谢!

3 个答案:

答案 0 :(得分:28)

是;您可以控制List<T>的排序。

您可以假设任何带有list[int]索引器的.NET集合都具有可预测的排序;否则,数字指数没有任何意义。相比之下,不可能使用带有Dictionary<K,V>的数字索引,并且当您枚举字典时,不能保证排序。

答案 1 :(得分:4)

是的,这是确定性的。请记住,如果您想跨线程使用List<T>,那么就像任何事情一样,您无法保证交互发生的顺序。

答案 2 :(得分:1)

是。 List是一个索引集合;使用Add()将元素放入List中将导致它们按照添加的顺序编制索引。