如何将 C# 字符串转换为 Span<char>? (跨度<T>)

How do I convert a C# string to a Span<char>? (Span<T>)

如何将字符串转换为 Span

Span<char> mySpan = "My sample source string";

您需要安装System.Memory NuGet package

有名为 .AsSpan() 或 .AsReadOnlySpan() 的字符串扩展方法,可将字符串转换为适当的 Span

示例:

Span<char> mySpan = "My sample source string".AsSpan();
ReadOnlySpan<char> myReadOnlySpan = "My read only string".AsReadOnlySpan();

来源:MSDN Channel 9 "C# 7.2: Understanding Span"(6 分钟左右)

更新:这个答案当时是正确的,但基于预览版。有关当前过程,请参阅

Span<T>朋友们都包含在.NET Core 2.1中,所以不需要安装额外的NuGet包。

在那个日期是正确的并且基于预览,但现在它已经过时了。 对于string,扩展方法分别为AsSpanAsMemory,即returnReadOnlySpan<char>ReadOnlyMemory<char>

显式 AsReadOnlySpan 消失了,因为 string 是不可变的,所以取回 Span<char>(可写)没有意义。