假设我在列表中有3个字符串(例如“ 1”,“ 2”,“ 3”)。
然后,我想对它们进行重新排序以将“ 2”放置在位置1(例如“ 2”,“ 1”,“ 3”)。
我正在使用此代码(将indexToMoveTo设置为1):
listInstance.Remove(itemToMove); listInstance.Insert(indexToMoveTo, itemToMove);
这似乎可行,但是我偶尔会得到奇怪的结果。有时订单不正确或列表中的项目被删除!
有任何想法吗?是否List<T>保证订单?
List<T>
List 是否保证以添加顺序返回项目?
本List<>类不保证排序-事情会在包括重复添加它们,顺序列表被保留,除非你明确地分类列表。
List<>
根据MSDN:
…列表“表示可以 通过index 访问的对象的强类型列表。”
索引值必须保持可靠才能使其准确。因此,保证了订单。
如果您将代码移到列表的后面,则可能会从代码中得到奇怪的结果,因为您Remove()将在调用之前将所有其他项目移到一个位置Insert()。
Remove()
Insert()
您可以将代码精简到可以发布的程度吗?