GetRangeAt() private method

private GetRangeAt ( int i ) : SingleRange
i int
return SingleRange
 internal void AddCharClass(RegexCharClass cc)
 {
     if (!cc._canonical)
     {
         this._canonical = false;
     }
     else if ((this._canonical && (this.RangeCount() > 0)) && ((cc.RangeCount() > 0) && (cc.GetRangeAt(0)._first <= this.GetRangeAt(this.RangeCount() - 1)._last)))
     {
         this._canonical = false;
     }
     for (int i = 0; i < cc.RangeCount(); i++)
     {
         this._rangelist.Add(cc.GetRangeAt(i));
     }
     this._categories.Append(cc._categories.ToString());
 }
        /*
         * AddCharClass()
         *
         * Adds a regex char class
         */
        internal void AddCharClass(RegexCharClass cc) {
            int i;

            Debug.Assert(cc.CanMerge && this.CanMerge, "Both character classes added together must be able to merge" );
            
            if (!cc._canonical) {
                // if the new char class to add isn't canonical, we're not either.
                _canonical = false;
            }
            else if (_canonical && RangeCount() > 0 && cc.RangeCount() > 0 && cc.GetRangeAt(0)._first <= GetRangeAt(RangeCount() - 1)._last)
                _canonical = false;

            for (i = 0; i < cc.RangeCount(); i += 1) {
                _rangelist.Add(cc.GetRangeAt(i));
            }

            _categories.Append(cc._categories.ToString());
        }