public IEnumerator <TSource> CreateOrderedEnumerable(IEnumerableSorted <TSource> next)
        {
            if (parent == null)
            {
                throw new InvalidOperationException("");
            }

            this.SetNext(next);
            return(parent.CreateOrderedEnumerable(this));
        }
 public IEnumerator <TSource> CreateOrderedEnumerable(IEnumerableSorted <TSource> nextSortLevel)
 {
     orderRule.SetNext(nextSortLevel);
     return(new Enumerator(this));
 }
 public void SetNext(IEnumerableSorted <TSource> next)
 {
     this.next = next;
 }