巨大的长篇名单搜索最近的元素

时间:2015-08-14 12:04:46

标签: c# list search

情况就是这样。

我有一些包含以下内容的对象:

  • 一个起始long
  • 结尾long
  • string代码

这些对象longs是顺序的。 例如:

var obj1 = new {From = 0, To = 16777215, Code = "aaa"};
var obj2 = new {From = 16777216, To = 16777471, Code = "bbb"};

这样有近150,000个对象。

目前我将所有内容存储在SQL表中。

问题是我需要从此列表中搜索。例如,我需要查找编号为16777470的对象,该对象将是对象2“bbb”。

问题:有没有一种有效的方法可以在内存中存储这么多的对象,并且能够在其中寻找元素,有一个长的并且寻找最接近的元素?

1 个答案:

答案 0 :(得分:0)

从记忆效率的角度来看,我不确定。

思考:您当然也不想搜索整个列表,因此可能需要某种二级结构(某种索引或查找????)。

无论如何我偶然发现了这个: How to get the closest number from a List<int> with LINQ?

怀疑这种方法可能有点处理器,因为它没有二级索引。

希望这有帮助。