Exemple #1
0
        public bool MoveNext()
        {
            var hadCurrent = HasCurrent;
            var hasCurrent = MoveNextCore() && (flags.AllowsMultipleItems() || IsAtEnd());

            if (!hasCurrent && !hadCurrent)
            {
                state = State.Empty;
            }

            return(hasCurrent);
        }
Exemple #2
0
        public bool MoveNext()
        {
            for (; ;)
            {
                var hasNext =
                    iterator != null &&
                    iterator.MoveNext() &&
                    (flags.AllowsMultipleItems() || !iterator.MoveNext());

                if (!hasNext)
                {
                    return(SetAtEnd());
                }
                if (SetAtNext())
                {
                    return(true);
                }
            }
        }
Exemple #3
0
        public bool MoveNext()
        {
            ResetCurrent();

            for (; ;)
            {
                var hasNext =
                    iterator != null &&
                    iterator.MoveNext() &&
                    Consume(iterator, flags.AllowsMultipleItems());

                if (!hasNext)
                {
                    return(SetAtEnd());
                }
                if (SeekCurrent())
                {
                    return(true);
                }
            }
        }