示例#1
0
        public bool MoveNext()
        {
            if (_enums.Count != 0)
            {
                Current = default;
                foreach (var enumerator in _enums)
                {
                    var compareResult = enumerator.Current.CompareTo(Current);
                    if (compareResult == 0)
                    {
                        _toMove.Add(enumerator);
                    }
                    else if (compareResult > 0)
                    {
                        _toMove.ClearFast();
                        Current = enumerator.Current;
                        _toMove.Add(enumerator);
                    }
                }

                foreach (var enumerator in _toMove)
                {
                    if (!enumerator.MoveNext())
                    {
                        _enums.Remove(enumerator);
                    }
                }
                _toMove.ClearFast();

                return(true);
            }
            _toMove.Clear();
            return(false);
        }
示例#2
0
 public RecMultiUnionList Add(HList <RecommendIndexEntry> list)
 {
     if (list.Count > 0)
     {
         _list.Add(list);
     }
     return(this);
 }
示例#3
0
 public UintMultiUnionList Add(HList <uint> list)
 {
     if (list.Count > 0)
     {
         _list.Add(list);
     }
     return(this);
 }
示例#4
0
        public IEnumerator <uint> GetEnumerator()
        {
            Reset();

            foreach (var enumerable in _list)
            {
                _positions.Add(0);
            }

            return(this);
        }
示例#5
0
        public void Prepare()
        {
            _enums.Clear();

            foreach (var enumerable in _list)
            {
                HList <RecommendIndexEntry> .Enumerator enumerator = enumerable.GetEnumerator();
                if (enumerator.MoveNext())
                {
                    _enums.Add(enumerator);
                }
            }
        }
示例#6
0
        public IEnumerator <T> GetEnumerator()
        {
            foreach (var list in _source)
            {
                var enumerator = list.GetEnumerator();
                if (enumerator.MoveNext())
                {
                    _enums.Add(enumerator);
                }
            }

            return(this);
        }
示例#7
0
        public IEnumerator <uint> GetEnumerator()
        {
            _enums.Clear();

            foreach (var enumerable in _list)
            {
                HList <uint> .Enumerator enumerator = enumerable.GetEnumerator();
                if (enumerator.MoveNext())
                {
                    _enums.Add(enumerator);
                }
            }

            return(this);
        }
示例#8
0
        public IEnumerator <T> GetEnumerator()
        {
            _enums.Clear();
            _toMove.Clear();

            foreach (var enumerable in _list)
            {
                IEnumerator <T> enumerator = enumerable.GetEnumerator();
                if (enumerator.MoveNext())
                {
                    _enums.Add(enumerator);
                }
            }

            return(this);
        }
示例#9
0
 public MultiUnionList <T> Add(IEnumerable <T> list)
 {
     _list.Add(list);
     return(this);
 }