2011-02-11 51 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; 
}