Esempio n. 1
0
 internal RedBlackTreeEnumerator(RedBlackTreeSlice <K, V, N> slice)
 {
     _redBlackTree = slice;
     _isFirst      = true;
     _maximum      = slice.Maximum;
     _hasMaximum   = true;
 }
        internal RedBlackTreeSlice(RedBlackTreeSlice <K, V, N> parentSlice, K minimum, K maximum)
        {
            _redBlackTree = parentSlice._redBlackTree;

            if (Compare(minimum, parentSlice.Minimum) < 0)
            {
                throw new ArgumentException($"The minimum key of a subslice must be >= the minimum key of the containing slice ({minimum} is not >= {parentSlice.Minimum}).");
            }
            if (Compare(maximum, parentSlice.Maximum) > 0)
            {
                throw new ArgumentException($"The maximum key of a subslice must be <= the maximum key of the containing slice ({maximum} is not <= {parentSlice.Maximum}).");
            }
            if (Compare(minimum, maximum) < 0)
            {
                throw new ArgumentException($"The maximum key of a slice must be >= the minimum key (was given {minimum} to {maximum}).");
            }

            Minimum = minimum;
            Maximum = maximum;
        }