TType At <TType>(TreeQuery <TType> query) where TType : class { foreach (var element in Every(query)) { return(element); } return(null); }
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)); }
internal TreeEnumerable(TInner inner, int skip = 0, TreeQuery <TElement> query = default(TreeQuery <TElement>)) { Inner = inner; Query = query; Skip = skip; }
internal QueriableTreeEnumerator(TInner inner, TreeQuery <TElement> query) { Inner = inner; Query = query; Current = inner.Current as TElement; }
static TreeEnumerable <Node, TreeEnumerator, Node> Enumerate(Node root, TreeEnumerationMode mode, int skip, TreeQuery <Node> query) { return(new TreeEnumerable <Node, TreeEnumerator, Node>(new TreeEnumerator(root, mode), skip, query)); }