StringBuilder.GetChunks StringBuilder.GetChunks StringBuilder.GetChunks StringBuilder.GetChunks Method

Definition

Gibt ein Objekt zurück, das zum Durchlaufen der Blöcke von Zeichen verwendet werden kann, die in einer ReadOnlyMemory<Char>-Methode dargestellt werden, die aus dieser StringBuilder-Instanz erstellt wurde.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

Gibt zurück

Ein Enumerator für die Blöcke in ReadOnlyMemory<Char>.An enumerator for the chunks in the ReadOnlyMemory<Char>.

Hinweise

Sie können die Blöcke im Speicherbereich mit Code wie dem folgenden iterieren: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 */ }

Der Zweck dieser Methode besteht darin, die Daten einer Konstanten StringBuildereffizient zu extrahieren.The purpose of this method is to efficiently extract the data of a constant StringBuilder. Wenn die StringBuilder geändert wird, während die Block Enumeration unvollständig ist, ist das Ergebnis nicht definiert.If the StringBuilder is modified while the chunk enumeration is incomplete, the result is undefined. StringBuilderist auch nicht Thread sicher, sodass der Betrieb mit gleichzeitigen Threads unzulässig ist.StringBuilder is also not thread-safe, so operating on it with concurrent threads is illegal.

Es ReadOnlyMemory<T> StringBuilder ist nicht garantiert, dass die zurückgegebenen Blöcke unverändert bleiben, wenn Sie geändert werden, sodass Sie Sie nicht zur späteren Verwendung Zwischenspeichern.The ReadOnlyMemory<T> chunks returned are not guaranteed to remain unchanged if the StringBuilder is modified, so do not cache them for later use.

Wenn Sie ReadOnlySpan<T> einen aus ReadOnlyMemory<T> einem erstellen ( ReadOnlyMemory<T>.Span wie die-Methode im vorherigen Beispiel ist), ist teuer. Erstellen Sie daher eine lokale Variable für die Spanne, wenn Sie Sie in einer for -Anweisung in einer-Anweisung verwenden müssen.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. Beispiel: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] */ 
    }
}

Gilt für: