我有一个List<KeyValuePair<double, double>>
,列表按 排序KeyValuePair.Key
,因此可以修改为二进制搜索。我有一个double
对象。现在,我的任务是找到double
对象的索引。以下是适用的条件:
- 如果该
double
对象与KeyValuePair.Key
指定容差中的一个匹配,KeyValuePair.Value
则应返回对应的对象。 - 如果
double
对象超出 的最大和最小范围KeyValuePair.Key
,则应返回 0。 - 如果
double
对象落在 的最大最小值范围内KeyValuePair.Key
,但与指定容差内的任何一个都不匹配KeyValuePair.Key
,则获取最近的上限和最近的下限KeyValuePair.Value
(由 测量KeyValuePair.Key
)的平均值。
我知道在 C# 中可以使用二进制搜索实现,但它并不完全适合我的需要。我想问一下是否有任何实现已经满足我的需求?我不想花几个小时编写和调试其他人已经编写、调试和完善的代码。