c# – 频繁插入已排序的集合

我已经对集合(List)进行了排序,我需要始终对其进行排序.

我目前正在我的集合上使用List.BinarySearch,然后在正确的位置插入元素.我也尝试过每次插入后的排序列表,但性能不可接受.

有没有可以提供更好性能解决方案?也许我应该使用其他收藏品.

(我知道SortedList但它仅限于唯一键)

解决方法

PowerCollections一个OrderedBag类型,可能对你需要的东西有好处.来自文档

Inserting,deleting,and looking up an
an element all are done in log(N) + M
time
,where N is the number of keys in
the tree,and M is the current number
of copies of the element being
handled.

但是,对于.NET 3.5内置类型,使用List.BinarySearch并将每个项目插入正确的位置是一个良好的开端 – 但是在内部使用数组,因此当您执行所有复制时,性能将下降插入.

如果你可以将插件分组到可以改进的东西,但除非你在所有插入后只能进行一次排序操作,否则如果可以的话,最好使用PowerCollections中的OrderedBag.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...