SortedList 或 SortedDictionary 是按最近的键有效存储和检索数据的最佳方式吗?

问题描述

我正在做一个项目,我将一个对象存储在 SortedList 中,以时间戳为键,以便我可以使用内置的二分搜索来检索数据(如果较低,则为两组)并且上限与键的距离相等),该键存储在最接近任何给定时间戳的位置。对于上下文,插入和检索平均每 2 毫秒发生一次(本质上是用于游戏重播/倒带功能,我只是存储实体的当前状态)。虽然它有效,但它的 O(n) 插入并不是非常有效。我知道 SortedDictionary 有一个 O(log n) 插入,但没有内置的二分搜索

对于我的情况,您有经验的人可能知道有更好的选择吗?我正在寻找的最终目标是一种执行以下操作的方法

  1. 按时间戳顺序保存数据
  2. 获取任何给定时间戳两侧的数据(我在间隔值之间选择)
  3. 从给定的时间戳开始“重播”数据(因此快速连续 #2)
  4. 清除给定时间戳之前或之后的任何数据

据我所见和理解,SortedList 赢得 #2(和 #3 代理),SortedDictionary 排名第一,我必须滚动我自己的 BinarySearch 才能做到 #2/3 . 目前,每个实体都在处理它自己的 SortedList,但我想知道是否制作一种具有单一结构的 RecordManager 来处理所有实体可能会更高效。

任何帮助或建议都会很棒!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)