How do I convert a string to a Span<T>?
Span<char> mySpan = "My sample source string";
How do I convert a string to a Span<T>?
Span<char> mySpan = "My sample source string";
Span<T>
and friends are included in .NET Core 2.1, so no additional NuGet-package needs to be installed.
Dan Sorensen answer was correct at that date and based on the preview, but now it is outdated.
For string the extension methods are AsSpan
and AsMemory
, that return ReadOnlySpan<char>
and ReadOnlyMemory<char>
respectively.
ExplicitAsReadOnlySpan
is gone, because string
s are immutable, so it makes no sense to get back a Span<char>
(that is writeable).
You need to install the System.Memory NuGet package.
There are extension methods for strings called .AsSpan() or .AsReadOnlySpan() to convert a string to the appropriate Span<T>.
Example:
Span<char> mySpan = "My sample source string".AsSpan();
ReadOnlySpan<char> myReadOnlySpan = "My read only string".AsReadOnlySpan();
Source: MSDN Channel 9 "C# 7.2: Understanding Span" (around the 6 minute mark)
Update: this answer was correct at the time, but based on a preview version. See updated answer on this page by gfoidl for current procedure.