CodeGo.net>查找值范围在字典中

我有一些这种形式的数据(字典):

Value0  Text1
Value1  Text2
Value2  Text3
Value3  Text4
Value4  Text5

我现在必须遍历可能具有任何随机值的数组.

foreach value in random array
{
    if value is between (value0 && value1)
    console.writeline(Text1)
    if value is between (value1 && value2)
    console.writeline(Text2)
    if value is between (value2 && value3)
    console.writeline(Text3)
    if value is between (value3 && value4)
    console.writeline(Text4)
}

我在这里面临的问题是,对于数组的每个值,我应该能够检测到它的范围(大于值0且小于值1),并因此获得相应的文本.但是,字典不是常数,可以有任意数量的值,因此如果满足上述条件,我将无法执行这些操作.
(例如:词典可能还有另一个条目Value5 Text6)

什么是这样做的体面方法?

解决方法:

您无法使用Dictionary< TKey,TValue>来执行此操作,因为它不会使其中的项目保持顺序.但是您可以使用SortedDictionary<TKey, TValue>(或SortedList< TKey,TValue>)来执行此操作:

TValue GetValue<TKey, TValue>(SortedDictionary<TKey, TValue> dictionary, TKey key)
{
    var comparer = dictionary.Comparer;

    TValue result = default(TValue);

    foreach (var kvp in dictionary)
    {
        if (comparer.Compare(key, kvp.Key) < 0)
            return result;

        result = kvp.Value;
    }

    return result;
}
上一篇:python06入门——流程控制之if判断


下一篇:创建一个与sys.argv一起使用的解析字典