У меня есть список данных, которые пользователи могут контролировать порядок сортировки.
Это выглядит примерно так
Apples /\ \/
Oranges /\ \/
pears /\ \/
banana /\ \/
Pineapples /\ \/
etc /\ \/
/ \ и / предназначены для стрелок вверх и вниз
Когда пользователь нажимает вверх, я хочу получить текущий порядок сортировки и убрать один из него (поэтому он имеет меньшее значение и будет выше в порядке сортировки.
Когда пользователь нажимает вниз, я делаю наоборот
Полагаю, мне также нужно установить, есть ли в списке что-то еще с новым значением, которое я хочу присвоить, и настроить порядок сортировки этого элемента в обратном направлении.
Кажется ли это хорошим способом для достижения этой цели?
Или есть более разумный способ?
Кто-нибудь получил пример кода. Я использую .net 3.5, поэтому linq в порядке
Список хранится в кеше памяти - IList<mycustomobj>
любые предложения с благодарностью получены
EDIT:
Проблемы, о которых я беспокоюсь, - это когда изначально нет порядка сортировки - все будет равно нулю. И мой предложенный алгоритм неявно предполагает, что порядок сортировки всегда будет непрерывным. Но что происходит, когда строка удаляется? в списке порядков сортировки будет пробел, поэтому простое добавление 1 и удаление 1 могут не иметь никакого значения - как мне справиться с этим сценарием?