web-dev-qa-db-ja.com

C#文字列をSpan <char>に変換するにはどうすればよいですか? (スパン<T>)

文字列をSpan <T>に変換するにはどうすればよいですか?

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

Span<T>およびフレンドは.NET Core 2.1に含まれているため、追加のNuGetパッケージをインストールする必要はありません。

ダン・ソレンセンの答えはその日は正しいものであり、プレビューに基づいていましたが、今では時代遅れです。文字列の場合、拡張メソッドはAsSpanおよびAsMemoryであり、ReadOnlySpan<char>およびReadOnlyMemory<char>それぞれ。

AsReadOnlySpansは不変であるため、Explicit stringはなくなりました。したがって、Span<char>(書き込み可能)。

26
gfoidl

System.Memory NuGetパッケージ をインストールする必要があります。

.AsSpan()または.AsReadOnlySpan()と呼ばれる文字列の拡張メソッドがあり、文字列を適切なSpan <T>に変換します。

例:

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

ソース: MSDNチャネル9「C#7.2:スパンの理解」 (6分前後)

更新:この回答は当時は正しかったが、プレビュー版に基づいていた。現在の手順については gfoidlによるこのページの更新された回答 を参照してください。

16
Dan Sorensen