C#:是否有适合快速范围相关搜索的集合?

C# : is there an appropriate collection for fast range-related search?

我有这样的数据:

Time(seconds from start) Value
15 2
16 4
19 2
25 9

有很多条目(10000+),我需要一种方法来找到任何时间范围的足够快的总和,比如范围 16-25 秒的总和(即 4+2+9=15 ).此数据将动态更改多次(始终在列表底部添加新条目)。

我正在考虑使用排序列表 + 二进制搜索来确定位置并仅对值求和,但是计算它可能会花费太多时间。有没有更合适的方法呢? Nuget 数据包或算法参考将不胜感激。

只计算累计和:

Time Value CumulativeSum
15   2     2
16   4     6
19   2     8
25   9     17

然后对于范围 [16,25] 将是对 1625 的左边界进行二进制搜索的任务成 17 - 2 = 15

复杂度:O(log(n)),其中 n - 列表的大小。

lower/upper 绑定的二进制搜索实现可以在我的 repo 中找到 - https://github.com/eocron/Algorithm/blob/master/Algorithm/Sorted/BinarySearchExtensions.cs