Nuqleon.StringSegment
Provides a type providing a view into a System.String
to avoid allocations when performing string operations, e.g. Substring
.
Note: This type predates the introduction of
Span<T>
APIs in .NET, which may provide a valid alternative.
StringSegment
A StringSegment
is similar to an ArraySegment<char>
. It provides a view over a System.String
given an offset and a length. All accesses are bounds checked and get forwarded to the underlying string using the specified offset.
All APIs on System.String
are supported, so a StringSegment
can be used as a drop-in replacement for a System.String
. A call to ToString
will allocate a fresh System.String
containing the substring of the original underlying string.
StringSegment segment = new StringSegment("foobar");
StringSegment res = segment.Substring(1, 3);
This type is useful when building efficient parsers.