假設我得到了一個包含項目的排序列表,每個項目都可以在此列表中上下排序。首先想到的是有一個int的SortOrder(例如1-10)。這樣做的問題是,在排序時,我總是必須更新至少2個項目(項目3代替項目4,從而切換排序值)。如果我在位置3放置一個新物品,所有物品> 3將不得不在那裏改變sortOrder。如何處理排序「字符串」?
因此,爲了避免這種情況,我可以使用更大的intervalls例如:
N1 : 10 000
N2 : 20 000
N3 : 30 000
N4 : 40 000
N5 : 50 000
如果N4將被排序了它看起來像這樣的水平:
N1 : 10 000
N2 : 20 000
N4 : 25 000
N3 : 30 000
N5 : 50 000
我的問題是如何處理這是C#中的最佳方式?我應該使用哪種數據類型?我如何避免重新生成整個列表(當不能再進行排序)?
我自己的想法是將它存儲爲代碼和數據庫中的十進制數。
這看起來像一個建議的解決方案,而不是一個問題。你能解釋一下你想解決的問題嗎?我不認爲使用int或小數或其他來排序是一件壞事;只是這個問題沒有解釋爲什麼*你會插入一個新的項目或改變現有項目的排序順序。如果你解釋說我認爲你會有更好的答案。 – 2015-02-10 13:34:01
更新/交換兩個號碼有什麼問題? – DavidG 2015-02-10 13:34:09
我儘量做出儘可能少的更新,這包括往數據庫的往返以及GUI更新。 – Banshee 2015-02-10 14:23:43