2011-02-11 66 views
4

我正在使用SortedDictionary来存储按整数排序的值。使用SortedDictionary - 获取下一个值

我需要获得特定现有整数后的下一个值。我宁愿与统计员合作,但没有GetEnumerator(Key k)或类似的功能。

SortedDictionary<int, MyClass> _dict; 


void GetNextValue(int start, out MyClass ret) 
{ 
} 
+5

见:[我如何从SortedDictionary获取上一个键?](http://stackoverflow.com/q/4720674/412770)。使用`SortedList <,>`可能会更好。 – Ani 2011-02-11 11:23:52

回答

1

参考链接安仁增加,在这种情况下,它会是这样的:

ret = source.SkipWhile(pair => pair.Key <= start).First().Value; 

或可能(允许Try式的用法)

using(var iter = source.GetEnumerator()) { 
    while(iter.MoveNext()) { 
     if(iter.Current.Key > start) { 
      ret = iter.Current.Value; 
      return true; 
     } 
    } 
    ret = null; 
    return false; 
}