使 SortableBindingList 使用稳定排序的最简单方法
有一个示例说明如何修改SortableBindingList 使用稳定排序。但是,有一个 SortableBindingList 的更新版本。修改这个新版本以使用稳定排序的最佳方法是什么?我想我希望 SortableBindingList 上有一个标志,让 SortableBindingList 的用户决定是否要使用(较慢的)稳定排序或(更快的)默认排序。
谢谢
There is an example of how to modify SortableBindingList to use a stable sort. However, there is an updated version of SortableBindingList. What is the best way to modify this new version to use a stable sort? I think I would want a flag on the SortableBindingList to let the user of the SortableBindingList decide if they want to use (slower) stable sort or (faster) default sort.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过为
List
编写稳定的排序扩展方法来解决此问题:然后在新版本的
SortableBindingList
中将此行:更改为:
这可以通过使用不稳定排序在列表中的项目索引上补充了辅助键。由于此版本没有使用病态缓慢的插入排序来实现稳定排序,因此它应该足够快以供一般使用。
You can solve this problem by writing a stable sort extension method for
List<T>
:and then in the new version of
SortableBindingList
change this line:to:
This works by using the unstable sort supplemented with a secondary key on the item index within the list. Since this version doesn't use the pathologically slow insertion sort to achieve a stable sort, it should be fast enough for general use.