小编典典

是否列出保证插入顺序?

all

假设我在一个列表中有 3 个字符串(例如“1”、“2”、“3”)。

然后我想重新排列它们以将“2”放在位置 1(例如“2”、“1”、“3”)。

我正在使用此代码(将 indexToMoveTo 设置为 1):

listInstance.Remove(itemToMove);
listInstance.Insert(indexToMoveTo, itemToMove);

这似乎有效,但我偶尔会得到奇怪的结果;有时订单不正确或列表中的项目被删除!

有任何想法吗?List<T>保证订货吗?

有关的:

List 是否保证项目将按照添加的顺序返回?


阅读 79

收藏
2022-05-16

共1个答案

小编典典

该类List<>确实保证排序 -
除非您明确对列表进行排序,否则事物将按照您添加它们的顺序保留在列表中,包括重复项。

根据 MSDN:

…List “表示可以 通过 index 访问的强类型对象列表。”

索引值必须保持可靠才能准确。因此,订单是有保证的。

如果您在列表中稍后移动该项目,您的代码可能会得到奇怪的结果,因为您Remove()将在调用Insert().

你能把你的代码归结为小到可以发布的东西吗?

2022-05-16