我需要一种专门的字典.我的用例是这样的:用户想要指定值的范围(范围也可以是单个点)并为特定范围分配值.然后,我们想要使用单个值作为键来执行查找.如果此单个值出现在其中一个范围内,那么我们将返回与该范围关联的值.
例如:
// represents the keyed value
struct Interval
{
public int Min;
public int Max;
}
// some code elsewhere in the program
var dictionary = new Dictionary<Interval, double>();
dictionary.Add(new Interval { Min = 0, Max = 10 }, 9.0);
var result = dictionary[1];
if (result == 9.0) JumpForJoy();
Run Code Online (Sandbox Code Playgroud)
这显然只是一些代码来说明我正在寻找的东西.有谁知道实现这样的事情的算法?如果是这样,他们会指向我吗,拜托?
我已经尝试在Interval上实现一个自定义IEqualityComparer对象并重载Equals()和GetHashCode()但到目前为止无济于事.可能是我做错了.