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 bloků znaků reprezentovaných v ReadOnlyMemory<Char>
vytvořeném z této instance 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
Návraty
Enumerátor bloků dat v ReadOnlyMemory<Char>
.
Poznámky
Bloky dat v oblasti paměti můžete iterovat následujícím kódem:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
foreach(char ch in chunk.Span)
{ /* operations on ch */ }
Účelem této metody je efektivně extrahovat data konstantníStringBuilder. Pokud je StringBuilder změněn, pokud je výčet bloků dat neúplný, výsledek není definován. StringBuilder také není bezpečné pro přístup z více vláken, takže provoz s souběžnými vlákny je neplatný.
Vrácené bloky dat ReadOnlyMemory<T> nejsou zaručeny, že zůstanou beze změny, pokud dojde k úpravě StringBuilder, takže je neukládají do mezipaměti pro pozdější použití.
Vytvoření ReadOnlySpan<T> z ReadOnlyMemory<T> (protože metoda ReadOnlyMemory<T>.Span v předchozím příkladu) je nákladná, proto vytvořte pro rozsah místní proměnnou, pokud ji potřebujete použít v vnořeném příkazu for
. 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] */
}
}