Every <TType>(TreeQuery <TType> query) where TType : class { var inner = GetTypedEnumerator(); var enumerator = new QueriableTreeEnumerator <TType, QueriableTreeEnumerator <TElement, TInner, TInnerElement>, TElement>( inner, query); return(new TreeEnumerable <TType, QueriableTreeEnumerator <TType, QueriableTreeEnumerator <TElement, TInner, TInnerElement>, TElement>, TType>(enumerator)); }
QueriableTreeEnumerator <TElement, TInner, TInnerElement> GetTypedEnumerator() { var enumerator = new QueriableTreeEnumerator <TElement, TInner, TInnerElement>(Inner, Query); for (var i = 0; i < Skip; i++) { enumerator.MoveNext(); } return(enumerator); }