c# - 在 C# 中寻找高性能的最佳数据结构

标签 c# list generics search data-structures

我想知道哪种数据结构可以为我的场景提供更好的性能.... 我的要求是: 可能有几百万条记录的巨大数据集,我只打算写一次,并且在执行生命周期内我不会再更改它,我不需要它以排序的方式存储.... 我正在考虑使用 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 类没有针对我的要求进行优化...因为它已排序并且我不需要排序并且它对性能影响很大...

感谢您的帮助!

最佳答案

我认为您可能需要一个区间树。 Stackoverflow 用户 alan2here 最近问了几个 questions关于他正在从事的项目; Eric Lippert 将他指向 one of them 中的区间树结构.

关于c# - 在 C# 中寻找高性能的最佳数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8844721/

相关文章:

python - 在 Python 中使用 [] 和 list() 的区别

c# - 更改 xamarin 表单 pcl 目标

c# - DataGridView - 单元格验证 - 防止 CurrentRow/Cell 更改

c# - 用c#裁剪矩形

python获取列表中数字开始和结束位置的索引

list - dart - 如果包含在列表中,如何检查 id/name?

c# - 返回自身的 Func<T> 的正确 'T' 是多少?

ios - 我怎样才能在 Swift 5.1 (Xcode 11 Playground) 中为可选项实现泛型和非泛型函数签名的重载?

Scala 函数/方法参数化返回类型

c# - 为什么我们要实现接口(interface)?