【发布时间】:2009-01-16 12:08:38
【问题描述】:
所以我有一个通用列表,以及一个 oldIndex 和一个 newIndex 值。
我想尽可能简单地将oldIndex 的项目移动到newIndex...。
有什么建议吗?
注意
该项目应该在(newIndex - 1) 和newIndex 的项目之间结束它被删除。
【问题讨论】:
-
您应该更改您勾选的答案。带有
newIndex--的那个不会导致你说你想要的行为。 -
@Miral - 你认为哪个答案应该被接受?
-
杰皮尔森的。它会导致在移动之前位于 oldIndex 的对象在移动之后位于 newIndex。这是最不令人惊讶的行为(这是我在编写一些拖放重新排序代码时所需要的)。当然,他说的是
ObservableCollection,而不是通用的List<T>,但简单地交换方法调用以获得相同的结果是微不足道的。 -
在
[newIndex - 1]和[newIndex]的项目之间移动项目的请求(和correctly implemented in this answer)行为是不可逆的。Move(1, 3); Move(3, 1);不会将列表返回到初始状态。同时ObservableCollection和mentioned in this answer提供了不同的行为,即invertible。