StringBuilder.GetChunks Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca obiekt, który może służyć do iterowania fragmentów znaków reprezentowanych w ReadOnlyMemory<Char>
utworzonym na podstawie tego wystąpienia 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
Zwraca
Moduł wyliczający fragmentów w ReadOnlyMemory<Char>
.
Uwagi
Fragmentów w zakresie pamięci można iterować przy użyciu kodu podobnego do następującego:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
foreach(char ch in chunk.Span)
{ /* operations on ch */ }
Celem tej metody jest efektywne wyodrębnienie danych stałej StringBuilder. Jeśli StringBuilder jest modyfikowana, gdy wyliczenie fragmentu jest niekompletne, wynik jest niezdefiniowany. StringBuilder nie jest również bezpieczny wątkowo, więc działanie na nim z równoczesnymi wątkami jest nielegalne.
Zwrócone fragmenty ReadOnlyMemory<T> nie są gwarantowane bez zmian w przypadku modyfikacji StringBuilder, więc nie buforuj ich do późniejszego użycia.
Tworzenie ReadOnlySpan<T> na podstawie ReadOnlyMemory<T> (jak metoda ReadOnlyMemory<T>.Span w poprzednim przykładzie) jest kosztowne, dlatego utwórz zmienną lokalną dla zakresu, jeśli musisz użyć jej w zagnieżdżonej instrukcji for
. Na przykład:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
var span = chunk.Span;
for(int i = 0; i < span.Length; i++)
{
/* operations on span[i] */
}
}