c# - 对重新排列的问题进行排序的算法,知道新位置和旧位置

标签 c# algorithm sorting

假设我有一堆问题字段,用户可以重新排列它们并将位置已更改的问题的新位置和旧位置发送到服务器,然后服务器将使用此数据更新所有数据库中受影响的问题位置/编号值。如前所述,我只发回已移动问题的新位置和旧位置,而不是之前或之后影响的问题等。因此必须在服务器上进行计算。

假设我有问题编号。

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/

相关文章:

c# - 如何在单击按钮时开始循环,然后在再次单击同一个按钮时停止循环

c++ - O(1) 时间内平衡二进制搜索时间中的最小/最大元素

在图像/帧序列中查找差异/相似性的算法

arrays - 在排序数组上应用函数

swift - 使用 NSSortDescriptor 对一对多关系的 NSSet 类型的数据进行排序

c# - c#中关于 "static"字段的清除

c# - 如何将生成的位图加载到 PictureBox 中?

c# - 在 C# 中从谷歌搜索中提取图像

在一组项目中建立排序的算法

javascript - jquery 停止对象排序