public static StringRebuilder Create(string text) { if (text == null) { throw new ArgumentNullException("text"); } #if DEBUG Interlocked.Add(ref _totalCharactersScanned, text.Length); #endif return((text.Length == 0) ? StringRebuilder.Empty : StringRebuilderForString.Create(text, text.Length, LineBreakManager.CreateLineBreaks(text))); }
public override StringRebuilder GetSubText(Span span) { if (span.End > this.Length) { throw new ArgumentOutOfRangeException(nameof(span)); } if (span.Length == 0) { return(StringRebuilder.Empty); } else if (span.Length == this.Length) { return(this); } else { int firstLineNumber; int lastLineNumber; this.FindFirstAndLastLines(span, out firstLineNumber, out lastLineNumber); return(StringRebuilderForString.Create(_content, _lineBreaks, span.Start + _textSpanStart, span.Length, firstLineNumber, lastLineNumber - firstLineNumber)); } }
internal static StringRebuilder Create(string source, int length, ILineBreaks lineBreaks) { return(StringRebuilderForString.Create(source, lineBreaks, 0, length, 0, lineBreaks.Length)); }