c# – .NET中的数据结构,用于存储按排序唯一且可按范围查询的项
发布时间:2020-12-15 17:24:36 所属栏目:百科 来源:网络整理
导读:该场景是事件的时间轴,我希望能够查询特定日期范围内的所有项目. 我正在寻找.NET中的数据结构(最高v4.0),它将项目存储为已排序且唯一(例如,通过使用比较器或唯一键).它应该支持在不超过对数复杂度的情况下添加/删除,并且还应该以这种复杂性执行二进制搜索. S
该场景是事件的时间轴,我希望能够查询特定日期范围内的所有项目.
我正在寻找.NET中的数据结构(最高v4.0),它将项目存储为已排序且唯一(例如,通过使用比较器或唯一键).它应该支持在不超过对数复杂度的情况下添加/删除,并且还应该以这种复杂性执行二进制搜索. System.Collections.Generic.SortedSet看起来像我想要的,但它的GetViewBetween()方法返回一个包含的项目列表,作为SortedSet. 我遗漏了两件事: >调用ToList()或枚举SortedSet太昂贵了,因为列表很长.我需要方法返回List< T>,而不是SortedSet< T>. 如果你知道一个包含这种数据结构的好库,经过测试和熟悉,我肯定想尝试一下. 谢谢. 解决方法
经过一些阅读后,看起来SortedList或SortedDictionary就是您所需要的. SortedList似乎使用更少的内存,并且在技术上是二叉树,其中SortedDictionary使用未排序的数据更快.除此之外,他们是非常亲近的堂兄弟.
这是关于差异的一个很好的问题/答案:SortedList vs. SortedDictionary vs. Sort() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |