public IOrderedEnumerable <TElement> CreateOrderedEnumerable <TKey>( Func <TElement, TKey> keySelector, IComparer <TKey> comparer, bool @descending) { var oe = new HeapOrderedEnumerable <TElement, TKey>( _source, _numItems, keySelector, comparer, descending) { _parent = this }; return(oe); }
private IEnumerable <HeapOrderedEnumerable <TElement> > GetCriteria() { var keys = new Stack <HeapOrderedEnumerable <TElement> >(); HeapOrderedEnumerable <TElement> current = this; while (current != null) { keys.Push(current); current = current._parent; } return(keys); }