StringBuilder.GetChunks メソッド

定義

このStringBuilder インスタンスから作成されたReadOnlyMemory<Char>で表される文字のチャンクを反復処理するために使用できるオブジェクトを返します。

public:
 System::Text::StringBuilder::ChunkEnumerator GetChunks();
public System.Text.StringBuilder.ChunkEnumerator GetChunks();
member this.GetChunks : unit -> System.Text.StringBuilder.ChunkEnumerator
Public Function GetChunks () As StringBuilder.ChunkEnumerator

返品

ReadOnlyMemory<Char>内のチャンクの列挙子。

注釈

次のようなコードを使用して、メモリ範囲内のチャンクを反復処理できます。

foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
    foreach(char ch in chunk.Span)
        { /* operations on ch */ }

このメソッドの目的は、定数のデータを効率的に抽出することですStringBuilder。 チャンク列挙が不完全な間に StringBuilder が変更された場合、結果は未定義になります。 StringBuilder はスレッド セーフでないため、同時実行スレッドでの操作は無効です。

StringBuilderが変更された場合、返されるReadOnlyMemory<T>チャンクは変更されないという保証はないため、後で使用するためにキャッシュしないでください。

ReadOnlyMemory<T>からReadOnlySpan<T>を作成する (前の例のReadOnlyMemory<T>.Spanメソッドと同様) コストがかかるため、入れ子になったforステートメントで使用する必要がある場合は、スパンのローカル変数を作成します。 例えば次が挙げられます。

foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
    var span = chunk.Span;
    for(int i = 0; i < span.Length; i++)
    {
        /* operations on span[i] */
    }
}

適用対象