Sdílet prostřednictvím


StringBuilder.GetChunks Metoda

Definice

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

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

Enumerátor bloků dat v ReadOnlyMemory<Char>.

Poznámky

Bloky dat v oblasti paměti můžete iterovat následujícím kódem:

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

Účelem této metody je efektivně extrahovat data konstantníStringBuilder. Pokud je StringBuilder změněn, pokud je výčet bloků dat neúplný, výsledek není definován. StringBuilder také není bezpečné pro přístup z více vláken, takže provoz s souběžnými vlákny je neplatný.

Vrácené bloky dat ReadOnlyMemory<T> nejsou zaručeny, že zůstanou beze změny, pokud dojde k úpravě StringBuilder, takže je neukládají do mezipaměti pro pozdější použití.

Vytvoření ReadOnlySpan<T> z ReadOnlyMemory<T> (protože metoda ReadOnlyMemory<T>.Span v předchozím příkladu) je nákladná, proto vytvořte pro rozsah místní proměnnou, pokud ji potřebujete použít v vnořeném příkazu for. 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