StringBuilder.GetChunks Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí objekt, který lze použít k iteraci v blocích znaků reprezentovaných ReadOnlyMemory<Char>
z této 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>
.
Poznámky
Bloky dat v rozsahu paměti můžete iterovat pomocí kódu podobného následujícímu:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
foreach(char ch in chunk.Span)
{ /* operations on ch */ }
Účelem této metody je efektivně extrahovat data konstanty StringBuilder . Pokud StringBuilder je upraveno, zatímco je výčet bloků neúplný, výsledek není definován. StringBuilder není také bezpečná pro přístup z více vláken, takže na něm pracují souběžně vlákny je neplatné.
U ReadOnlyMemory<T> vrácených bloků není zaručeno, že zůstane beze změny v případě StringBuilder změny, takže je neuloží do mezipaměti pro pozdější použití.
Vytvoření ReadOnlySpan<T> z ReadOnlyMemory<T> (jako ReadOnlyMemory<T>.Span metoda 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 vnořeném for
příkazu. Například:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
var span = chunk.Span;
for(int i = 0; i < span.Length; i++)
{
/* operations on span[i] */
}
}