Я работаю над алгоритмом, который решит проблему, которую я имею, но я нахожу себя немного застрявшим. Вот сценарий:Сортировка и обновление списка объектов на основе изменения переменной
У меня есть объект, который содержит переменную, называемую порядком.
public class Item
{
public int Order{get; set;};
public int ID{get; set;}; // not incremented can be any value!
}
Так у меня есть список из них:
List<Item> list = new List<Item>().OrderBy((o) => o.Order);
И в любое время стоимость заказа может быть изменено. Итак, если я хочу изменить первое значение порядка элементов, все остальные значения заказа должны соответственно обновиться, чтобы дубликатов не было.
for (int i = 0; i <= list .Count - 1; i++)
{
if (list [i].ID == inputID)
{
list [i].Order = inputNewPosition;
}
else
{
if (list [i].Order < inputNewPosition)
{
list [i].Order --;
}
else
{
list [i].Order ++;
}
}
}
Это не удается, если я изменил последний порядок предметов, чтобы быть первым, так как это сделает первый порядок предметов равным 0!
Может ли кто-нибудь помочь?
Благодаря
** Поэтому, если я хочу изменить первое значение заказа предметов, все остальные значения заказа должны соответственно обновиться, чтобы дубликатов не было **, разбил мой парсер. может быть, вы хотите перефразировать? – thang
Я ищу разъяснения: из того, что я читаю, я собираю у вас 5 объектов с атрибутами порядка 1,2,3,4,5, и вы хотите иметь возможность изменить объект с помощью Order = 5 на что-то вроде order = 3 и измените 3-> 4 и измените 4-> 5, чтобы освободить место для него. Я на правильном пути? – deepee1