列表<T>是否保证按添加的顺序返回项目?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (25)

List<T>始终保证项目将按照枚举时添加的顺序返回?

提问于
用户回答回答于

列表是基于索引的,新项将始终添加到列表的末尾。你可以在某个索引处插入项,以便下一项将移动一个位置。

所以:

List(T)类是ArrayList类的泛型等效类。它使用一个数组实现IList(T)泛型接口,该数组的大小根据需要动态增加。可以使用整数索引访问此集合中的元素。此集合中的索引是基于零的。列表(T)不能保证排序。在执行要求对列表(T)进行排序的操作(如BinarySearch)之前,必须对列表(T)进行排序。一个列表(T)可以同时支持多个读取器,只要集合不被修改。通过集合枚举本质上不是一个线程安全的过程。在枚举与一个或多个写访问相争的罕见情况下,确保线程安全的唯一方法是在整个枚举期间锁定集合。若要允许多个线程访问集合以进行读写,您必须实现自己的同步。

你可以在上面读到更多关于它的内容。MSDN

用户回答回答于

是的,List<T>保证插入顺序和检索顺序,这是记录在MSDN(重点以下是我的)。

插入

List<T>.Add 方法

将对象添加到List<T>末尾

项目参数是:

要添加到对象的最后的List<T>对象。

List<T>.AddRange 方法

将指定集合的​​元素添加到List<T>末尾

收集参数是:

其元素应添加到集合的末尾的List<T>集合。

恢复

List<T>.Enumerator 结构体

最初,枚举器位于集合中的第一个元素之前。在这个位置,Current是不确定的。因此,在读取值之前,您必须先调用MoveNext枚举器到集合第一个元素Current

Current返回相同的对象直到MoveNext被调用。MoveNext设置Current下一个元素

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问5 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问3 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券