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