StringBuilder.GetChunks Metoda

Definice

Vrátí objekt, který lze použít k iteraci v blocích znaků reprezentovaných ve ReadOnlyMemory<Char> vytvořeném z této instance StringBuilder.Returns an object that can be used to iterate through the chunks of characters represented in a ReadOnlyMemory<Char> created from this 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

Enumerátor pro bloky dat v ReadOnlyMemory<Char>.An enumerator for the chunks in the ReadOnlyMemory<Char>.

Poznámky

Bloky dat v rozsahu paměti můžete iterovat pomocí kódu podobného následujícímu:You can iterate the chunks in the memory range with code like the following:

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

Účelem této metody je efektivně extrahovat data konstant StringBuilder.The purpose of this method is to efficiently extract the data of a constant StringBuilder. Pokud je upraven StringBuilder v době, kdy je výčet bloků neúplný, výsledek není definován.If the StringBuilder is modified while the chunk enumeration is incomplete, the result is undefined. StringBuilder také není bezpečná pro přístup z více vláken, takže na něm pracují souběžně vlákny je neplatné.StringBuilder is also not thread-safe, so operating on it with concurrent threads is illegal.

U ReadOnlyMemory<T>ch bloků dat není zaručeno, že zůstanou beze změny v případě změny StringBuilder, takže je neuloží do mezipaměti pro pozdější použití.The ReadOnlyMemory<T> chunks returned are not guaranteed to remain unchanged if the StringBuilder is modified, so do not cache them for later use.

Vytvoření ReadOnlySpan<T> z ReadOnlyMemory<T> (jako metoda ReadOnlyMemory<T>.Span 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 rámci vnořeného forho příkazu.Creating a ReadOnlySpan<T> from a ReadOnlyMemory<T> (as the ReadOnlyMemory<T>.Span method does in the previous example, is expensive, so create a local variable for the span if you need to use it in a nested for statement. Příklad:For example:

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