示例#1
0
        /// <summary>
        /// Returns an iterator which yields all elements of the sequence in the reverse order.
        /// </summary>
        /// <remarks>This should always be equivalent to, but faster than,
        /// <code>
        /// AsEnumerable().Reverse();
        /// </code></remarks>
        public IEnumerable <Tuple <TKey, TValue> > ReverseIterator()
        {
            if (_count == 0)
            {
                yield break;
            }
            if (_right.Count() != 0)
            {
                foreach (var pair in _right.ReverseIterator())
                {
                    yield return(pair);
                }
            }
            yield return(Tuple.New(_key, _value));

            if (_left.Count() != 0)
            {
                foreach (var pair in _left.ReverseIterator())
                {
                    yield return(pair);
                }
            }
        }