public IEnumerable <TValue> GreaterThan(TKey gtKey) { int compare = comparer.Compare(theKey, gtKey); if (compare <= 0) { foreach (var value in Right.GreaterThan(gtKey)) { yield return(value); } yield break; } foreach (var value in Left.GreaterThan(gtKey)) { yield return(value); } yield return(Value); foreach (var value in Right.GreaterThan(gtKey)) { yield return(value); } }