StringBuilder.GetChunks Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.
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>
.
Hinweise
Sie können die Block im Speicherbereich mit Code wie dem folgenden iterieren:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
foreach(char ch in chunk.Span)
{ /* operations on ch */ }
Der Zweck dieser Methode besteht im effizienten Extrahieren der Daten einer konstanten StringBuilder . Wenn geändert StringBuilder wird, während die Blockenumeration unvollständig ist, ist das Ergebnis nicht definiert. StringBuilder ist auch nicht threadsicher, sodass die Ausführung mit gleichzeitigen Threads unzulässig ist.
Es ist nicht garantiert, dass die zurückgegebenen Blocke unverändert bleiben, wenn geändert wird. Daher sollten Sie sie nicht zur ReadOnlyMemory<T> StringBuilder späteren Verwendung zwischenspeichern.
Das Erstellen eines aus einem (wie die -Methode im vorherigen Beispiel) ist teuer. Erstellen Sie daher eine lokale Variable für die Spanne, wenn Sie sie in einer geschachtelten ReadOnlySpan<T> ReadOnlyMemory<T> Anweisung verwenden ReadOnlyMemory<T>.Span for
müssen. Beispiel:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
var span = chunk.Span;
for(int i = 0; i < span.Length; i++)
{
/* operations on span[i] */
}
}