我在sql-server表中有以下项目。 (大小> 100K)
Name Order
x 1
... n
y 25
... n
z 300
... n
当项目的更改顺序时,(z = 25)我需要重新排序所有项目(x = 1,z = 25,y = 26)我的解决方案是使用十进制顺序列并使用以下公式计算新订单:“(之前订单+下一个订单)/ 2“(x = 1,z = 24.5,y = 25)已更改订单商品。这个解决方案确定,但每个更改顺序的小数精度增量。 (如果之前改变了)
有什么方法吗?
答案 0 :(得分:1)
您应该使用List作为数据结构。列表中的数据是有序的,因此当您在y之前插入'z'时,例如:
MyList.Remove('z')
MyList.Insert(MyList.IndexOf('y'), 'z');
然后重新排序列表:
MyList.IndexOf('z'); //will return 25
MyList.IndexOf('y'); //will return 26
您可以通过以下方式访问这些值:
MyList[25]; //will return 'z'
MyList[26]; //will return 'y'
请注意,List的索引是从0而不是从1开始。