我有一个工作场景,我们有几个不同的数据表,格式类似于以下:
Table Name: HingeArms
Hght Part #1 Part #2
33 S-HG-088-00 S-HG-089-00
41 S-HG-084-00 S-HG-085-00
49 S-HG-033-00 S-HG-036-00
57 S-HG-034-00 S-HG-037-00
其中第一列(可能更多)包含按升序排序的数字数据,并表示确定要获取的正确数据记录的范围(例如,高度 <= 33 然后第 1 部分 = S-HG-088-00,高度 <= 41 然后第 1 部分 = S-HG-084-00 等)
我需要查找并选择给定指定值的最接近的匹配项。例如,给定高度 = 34.25,我需要在上面的集合中获得第二条记录:
41 S-HG-084-00 S-HG-085-00
这些表当前存储在从 CSV 文件加载的数据的 VB.NET 哈希表“缓存”中,其中哈希表的键是表名和表中表示“键”的一个或多个列的组合。记录。例如,对于上表,第一条记录的 Hashtable Add 将是:
ht.Add("HingeArms,33","S-HG-088-00,S-HG-089-00")
这似乎不是最佳的,如果需要,我可以灵活地更改结构(缓存包含来自其他可以直接查找的表的数据......这些“范围”表只是因为它“容易”而被转储)。我在 Hashtable/Dictionary 上寻找“Next”方法,以便为我提供该范围内最接近的匹配记录,但这显然不适用于 VB.NET 中的股票类。
关于使用 Hashtable 或不同结构来做我正在寻找的事情的任何想法?它需要高性能,因为查找将在不同的代码部分中经常被调用。任何想法将不胜感激。谢谢。