StringBuilder.GetChunks Metoda

Definice

Vrátí objekt, který lze použít k iteraci bloků znaků reprezentovaných v ReadOnlyMemory<Char> vytvořené instanci 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 pro bloky dat v objektu 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 konstantyStringBuilder. StringBuilder Pokud je změněna v době, kdy je výčet bloků dat neúplný, je výsledek nedefinovaný. StringBuilder není také bezpečný pro přístup z více vláken, takže provoz s souběžnými vlákny je neplatný.

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

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