As for the link added by Ani, in this case it would be something like this:
ret = source.SkipWhile(pair => pair.Key <= start).First().Value;
or perhaps (to use try-style)
using(var iter = source.GetEnumerator()) { while(iter.MoveNext()) { if(iter.Current.Key > start) { ret = iter.Current.Value; return true; } } ret = null; return false; }
source share