1
我有具有OrderNum字段的对象的列表。如何最佳地更改item.OrderNum字段以匹配列表顺序
OrderNum字段必须与列表顺序相匹配(但不必连续)。
简单的解决方案。重置每ORDERNUM当列表顺序变化:
for (int i = 0; i < list.length; i++) {
list[i].OrderNum = i;
}
但随着ORDERNUM都存储在SQL,ORDERNUM的少量复位,更好。当OrderNum必须重置时,更改可能很大。有32位可用。有序列表检索者:
SELECT * FROM orderable_items ORDER BY order_num;
实际的编程语言是C#。
我正在考虑最初有均匀分布的线条,以便插入其他项目时总会有足够的数字空间。我从来没有真正拥有**最初的**名单。只是一些版本,几乎可以在OrderNum中有任何东西。尽管大多数列表已排序。也许找到最长的子序列会有所帮助? – jkj 2011-02-23 18:36:33
你知道你可以期待什么样的改变,或者你想要一个通用的重新排序功能,尽可能少的数字改变? – Beta 2011-02-23 19:40:54
大多数是一个新项目出现/更改列表中的地方。尽管有时并没有一个理智的OrderNums开始。我正在寻找一个通用的解决方案,但它也有可能例如成功移动一个项目或退回重新编号。 – jkj 2011-02-24 09:41:27