How do I convert a C# string to a Span? (Span)

前端 未结 2 1998
说谎
说谎 2021-01-07 17:05

How do I convert a string to a Span?

Span mySpan = \"My sample source string\";
相关标签:
2条回答
  • 2021-01-07 17:39

    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.

    0 讨论(0)
  • 2021-01-07 17:44

    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 strings are immutable, so it makes no sense to get back a Span<char> (that is writeable).

    0 讨论(0)
提交回复
热议问题