如何使用 2 个不同的搜索参数存储一组数据

本文关键字:存储 数据 一组 参数 搜索 何使用 | 更新日期: 2023-09-27 18:33:59

我有一个类来包含与此问题相关的以下数据(Xpos,Ypos,时间戳(

大小是一个 100x100 的区域(Xpos 和 Ypos(,并且每个位置都有一个更新时间,即时间戳,然后为类提供新的时间戳以供下次更新。

现在,我可以遍历所有这些数据点,找到时间戳启动的任何类,并执行所需的操作。对我来说,这似乎效率低下。

或者我可以将其存储在排序列表中,时间戳是决策程序,所以我只需要检查直到找到尚未准备好更新的条目,更新这些条目并使用新时间戳删除/重新添加它们。

现在我的踢是,可以通过通过 Xpos 和 Ypos 查找位置的工作流修改预期的下一个时间戳,这意味着我必须再次遍历所有条目才能执行此操作。

我可以通过对象同时位于排序列表和 100x100 数组中来解决这个问题,问题是通过 100x100 数组列表更新时间戳,不会更新其在排序列表中的位置。

有没有一种好方法可以处理这种"双重排序",而不必从时间戳触发点或时间戳的数组更新中浏览完整列表。

如何使用 2 个不同的搜索参数存储一组数据

一种选择是将数据存储在优先级队列中。 C5 馆藏库的IntervalHeap将是一个不错的选择。 IntervalHeap<T>.Replace方法允许您直接替换项目(即:更改其优先级,这将是Timestamp(。