【发布时间】:2015-09-09 21:29:44
【问题描述】:
假设我有一个项目列表:
- 一种 -乙 - C现在服务器从某个地方告诉我的应用程序元素 B 已被删除,但它只提供整个新列表,而不是确切的更改细节。
由于 WinRT ListViews 自动为其中的项目添加、删除和移动设置动画,我不希望刷新支持列表并调用 Reset-INotifyCollectionChanged-事件,因为这会使每个项目看起来相当生硬和粗糙。
相反,我想计算将本地列表转换为从服务器获取的列表所需的步骤。 (有点像 levenshtein 距离,只是不是步数,而是步数本身)
e。 g.:
1.删除元素B 2.将新元素D添加到位置3我该怎么做?
编辑:在我的情况下订购事项。
【问题讨论】:
-
你可以看看 diff 算法 - en.wikipedia.org/wiki/Diff_utility
标签: c# list diff array-difference inotifycollectionchanged