假设我有一堆问题字段,用户可以重新排列它们并将位置已更改的问题的新位置和旧位置发送到服务器,然后服务器将使用此数据更新所有数据库中受影响的问题位置/编号值。如前所述,我只发回已移动问题的新位置和旧位置,而不是之前或之后影响的问题等。因此必须在服务器上进行计算。
假设我有问题编号。
1 2 3 4 5 6 7 8
如果我这样重新排列它们
8 1 2 3 4 5 6 7
然后,(问题 8)的新位置(现在为 1)和旧位置(8)之间的所有值都需要更新,其中 1 - 7 获得 +1,8 更改为 1。这是当然,这是一个简化的场景,问题可以重新安排到更复杂的程度,其中受影响的范围将重叠,其他范围将在其他范围内终止等。因此,所需的增量和减量将被组合。听起来像是一个相当普遍的场景,所以如果有人可以举个例子,最好是用 c# 来做。
最佳答案
与上面的答案类似:您可以向问题对象添加一个“位置”属性(与其在列表中的位置无关)吗?用户在重新排列时更改此属性。然后你可以做一个 ListOfQuestions.OrderBy(q => q.Position)?
这只是
关于c# - 对重新排列的问题进行排序的算法,知道新位置和旧位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13755818/