我使用SortedDictionary来存储按整数排序的值。
我需要在特定的现有整数后得到下一个值。我更喜欢使用枚举器,但没有GetEnumerator(Key k)
或类似功能。
SortedDictionary<int, MyClass> _dict;
void GetNextValue(int start, out MyClass ret)
{
}
答案 0 :(得分:2)
参考Ani添加的链接,在这种情况下它将类似于:
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;
}