【发布时间】:2016-03-20 01:31:31
【问题描述】:
我有一个 Excel 函数,我正在尝试将其转换为 C# 等效代码。函数(在Excel中)如下:
WorksheetFunction.VLookup(number, Range("numberDictionary"), 2, True)
这个函数的本质是......
假设存在字典,定义如下:
Number | Value
1 | 2
3 | 8
9 | 1
并假设我的参数“数字”等于 2
我希望返回的值是 8,因为查找函数会将我的输入数字 2 向上舍入到范围 (3) 中最接近的数字,然后返回相关的值。
谁能告诉我如何在 C# 代码中实现同样的功能?假设使用Dictionary<int, int>()
在此先感谢
伊恩
【问题讨论】:
-
@HimBromBeere 在这种情况下,该函数将向上舍入到最近的键
-
您可以使用有序集合和二分搜索算法。如果您坚持使用
O(n)的字典,因为您必须查看所有键。 -
如果
number是 10(基本上是高于最高键的数字)会发生什么?
标签: c# math dictionary