我正在研究一個算法,它將解決我遇到的一個問題,但是我發現自己有點卡住了。這裏是場景:基於變量變化對對象進行排序和更新
我有一個對象,其中包含一個變量稱爲秩序。
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 2013-02-14 17:58:44
我正在尋求澄清:從我正在閱讀的內容中我收集到5個具有1,2,3,4,5順序屬性的對象,並且您希望能夠將Order = 5的對象更改爲類似order = 3並更改3-> 4並更改4-> 5以騰出空間。我在正確的軌道上嗎? – deepee1 2013-02-14 19:29:48