public bool MoveNext() { if ((this.innerEnumerator != null) && this.innerEnumerator.MoveNext()) { return(true); } if (!this.outerEnumerator.MoveNext()) { return(false); } MessageQueryCollection current = this.outerEnumerator.Current; this.innerEnumerator = this.enumerable.GetInnerEnumerator(current); return(this.innerEnumerator.MoveNext()); }
public bool Remove(MessageQuery key) { if (!this.dictionary.Remove(key)) { return(false); } System.Type type = key.GetType(); MessageQueryCollection querys = this.collectionsByType[type]; querys.Remove(key); if (querys.Count == 0) { this.collectionsByType.Remove(type); } return(true); }
public bool MoveNext() { if (innerEnumerator == null || !this.innerEnumerator.MoveNext()) { if (!this.outerEnumerator.MoveNext()) { return(false); } else { MessageQueryCollection collection = this.outerEnumerator.Current; this.innerEnumerator = this.enumerable.GetInnerEnumerator(collection); return(this.innerEnumerator.MoveNext()); } } else { return(true); } }
protected override IEnumerator <KeyValuePair <MessageQuery, TResult> > GetInnerEnumerator( MessageQueryCollection collection) { return(collection.Evaluate <TResult>(this.Source).GetEnumerator()); }
protected abstract IEnumerator <KeyValuePair <MessageQuery, TResult> > GetInnerEnumerator(MessageQueryCollection collection);