public char this[int index]
        {
            get
            {
                if (index < 0 || index >= this.Count)
                {
                    throw ThrowHelper.GetArgumentOutOfRange_IndexException();
                }

                return(this.source[this.Offset + index]);
            }
        }
        public StringSegment Slice(int index, int count)
        {
            if (!this.HasSource)
            {
                return(Empty);
            }

            if ((uint)index > (uint)this.Count || (uint)count > (uint)(this.Count - index))
            {
                throw ThrowHelper.GetArgumentOutOfRange_IndexException();
            }

            return(new StringSegment(this.source, this.Offset + index, count));
        }