예제 #1
0
                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());
                }
예제 #2
0
        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);
        }
예제 #3
0
                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);
                    }
                }
예제 #4
0
 protected override IEnumerator <KeyValuePair <MessageQuery, TResult> > GetInnerEnumerator(
     MessageQueryCollection collection)
 {
     return(collection.Evaluate <TResult>(this.Source).GetEnumerator());
 }
예제 #5
0
 protected abstract IEnumerator <KeyValuePair <MessageQuery, TResult> > GetInnerEnumerator(MessageQueryCollection collection);