如何将 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,扩展方法分别为AsSpan
和AsMemory
,即returnReadOnlySpan<char>
和ReadOnlyMemory<char>
显式 AsReadOnlySpan
消失了,因为 string
是不可变的,所以取回 Span<char>
(可写)没有意义。
如何将字符串转换为 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包。
AsSpan
和AsMemory
,即returnReadOnlySpan<char>
和ReadOnlyMemory<char>
显式 AsReadOnlySpan
消失了,因为 string
是不可变的,所以取回 Span<char>
(可写)没有意义。