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

Dan*_*sen 22 c# c#-7.2

如何将字符串转换为Span <T>?

Span<char> mySpan = "My sample source string";
Run Code Online (Sandbox Code Playgroud)

小智 28

Span<T> 和朋友包含在.NET Core 2.1中,因此不需要安装额外的NuGet包.

Dan Sorensen在那个日期回答是正确的并且基于预览,但现在它已经过时了.对于字符串,扩展方法是AsSpanAsMemory,分别返回ReadOnlySpan<char>ReadOnlyMemory<char>.

显式AsReadOnlySpan已经消失,因为strings是不可变的,所以返回a Span<char>(可写)是没有意义的.


Dan*_*sen 17

您需要安装System.Memory NuGet包.

字符串的扩展方法称为.AsSpan()或.AsReadOnlySpan(),用于将字符串转换为适当的Span <T>.

例:

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

来源:MSDN第9频道"C#7.2:了解跨度"(大约6分钟)

更新:这个答案在当时是正确的,但基于预览版本.有关当前程序,请参阅本页的gfoidl更新的答案.