StringBuilder.GetChunks Metoda

Definice

Vrátí objekt, který lze použít k iteraci v blocích znaků reprezentovaných ReadOnlyMemory<Char> z této StringBuilder instance.

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

Návraty

StringBuilder.ChunkEnumerator

Enumerátor pro bloky dat v ReadOnlyMemory<Char> .

Poznámky

Bloky dat v rozsahu paměti můžete iterovat pomocí kódu podobného následujícímu:

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

Účelem této metody je efektivně extrahovat data konstanty StringBuilder . Pokud StringBuilder je upraveno, zatímco je výčet bloků neúplný, výsledek není definován. StringBuilder není také bezpečná pro přístup z více vláken, takže na něm pracují souběžně vlákny je neplatné.

U ReadOnlyMemory<T> vrácených bloků není zaručeno, že zůstane beze změny v případě StringBuilder změny, takže je neuloží do mezipaměti pro pozdější použití.

Vytvoření ReadOnlySpan<T> z ReadOnlyMemory<T> (jako ReadOnlyMemory<T>.Span metoda v předchozím příkladu) je nákladné, takže vytvořte místní proměnnou pro rozsah, pokud je třeba ji použít v vnořeném for příkazu. Například:

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

Platí pro