想象我有一個項目列表:在列表複製更改
- A - B - C
現在從某處的服務器告訴我的應用程序,元素B
被刪除,但它僅提供了全新的列表,而不是確切的變化細節。由於WinRT ListView
可自動添加,移除和移動項目內的項目,所以我寧願不刷新支持列表並調用Reset- INotifyCollectionChanged
-event,因爲這會激發每個項目看起來相當鈍和粗糙。 相反,我想計算將本地列表轉換爲從服務器獲取的列表所需的步驟。 (有點像levenshtein距離,只是沒有臺階數,而是有臺階本身)
e。 g .:
1. Delete element B 2. Add new element D to position 3
我該怎麼做?
編輯:訂購事項在我的情況。
你可以看看差異算法 - https://en.wikipedia.org/wiki/Diff_utility –