我想知道哪种数据结构能为我的场景提供更好的性能.... 我的要求是: 可能的大数据集几百万条记录,我只打算写一次,我不打算在执行期间再改变它,我不需要它以有序的方式存储.... 我正在考虑使用List但是如果我使用Linq查询并且在where条件中调用InRange性能非常差...如果我做一个foreach,性能不是那么好....我很确定有一个最好的方法(我想使用一个结构和/或实现IEquatable但性能没有提高... 女巫是C#中最快的数据结构,可以在我的范围内查询最佳性能吗? 我想要的是一个数据结构来存储数百万个Rnage类的实例
class Range
{
public int Low {get; set;}
public int High {get; set;}
public bool InRange(int val) { return val >= Low && val <= High; }
}
一个逻辑示例是List,但我担心List类没有根据我的要求进行优化...因为它已经排序,我不需要排序,它会对性能产生很大的影响......
感谢您的帮助!
答案 0 :(得分:1)
我想你可能想要一个间隔树。 Stackoverflow用户alan2here最近询问了几个关于他正在进行的项目的questions; Eric Lippert将他指向one of them中的区间树结构。