Это, наверное, простой вопрос. Допустим, у меня есть небольшой список с примерно 20-50 записями или около того. Что-то вроде:
class Item
{
int ItemNumber;
int OrderNumber;
string Name;
}
stored in something like
List<Item>
Это хранится либо в общем списке, либо в массиве, где OrderNumber идет от 1, 2,3,4, .... 50. Чтобы упростить задачу, давайте предположим, что OrderNumber уже отсортирован в списке с помощью QuickSort где-то еще (если это не усложняет ситуацию).
Допустим, я хочу переместить Item.OrderNumber = 30 в место, занятое Item.OrderNumber = 20 или что-то в этом роде. Когда я делаю это, все, что выше 20, теперь нужно сместить так, чтобы старое 20 теперь было 21, 21 теперь 22, и т. Д., Пока я не достигну 30. Это также должно пойти другим путем, когда Item.OrderNumber = 30 перемещается в Item.OrderNumber = 34 и все должно быть смещено вниз.
Я думаю о том, чтобы несколько раз всплывать в списке, но я надеюсь, что есть лучший способ сделать это. Хотя размер списка невелик, для разных вещей это нужно сделать очень много.
РЕДАКТИРОВАТЬ: Просто чтобы вы знали. Результаты в конечном итоге должны быть сохранены в базе данных, в некотором типе транзакции.