c#中用于高性能Seek的最佳数据结构

本文关键字:最佳 数据结构 Seek 高性能 用于 | 更新日期: 2023-09-27 18:20:21

我想知道哪种数据结构能为我的场景提供更好的性能。。。。我的要求是:可能有几百万条记录的巨大数据集,我只写一次,在执行期间不会再更改它,我不需要以排序的方式存储它。。。。我本来想使用List,但如果我使用Linq查询,并且在where条件下调用InRange的性能非常差。。。如果我做前臂,表现就不那么好了。。。。我确信有一种最好的方法可以做到这一点(我想使用一个结构和/或实现IEquatable,但性能没有提高。。。witch是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类并没有针对我的需求进行优化。。。因为它是排序的,我不需要排序,它对表演有很大影响。。。

谢谢你的帮助!

c#中用于高性能Seek的最佳数据结构

我想您可能想要一个区间树。Stackoverflow用户alan2here最近就他正在进行的一个项目提出了几个问题;埃里克·利珀特(Eric Lippert)将他指向其中一张照片中的间隔树结构。