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é instanci 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 pro bloky dat v objektu 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 konstantyStringBuilder. StringBuilder Pokud je změněna v době, kdy je výčet bloků dat neúplný, je výsledek nedefinovaný. StringBuilder není také bezpečný pro přístup z více vláken, takže provoz s souběžnými vlákny je neplatný.
Vrácené ReadOnlyMemory<T> bloky dat nejsou zaručeny, že zůstanou StringBuilder beze změny, takže je neukládají do mezipaměti pro pozdější použití.
ReadOnlySpan<T> Vytvoření z metody ReadOnlyMemory<T> (jak to ReadOnlyMemory<T>.Span dělá metoda v předchozím příkladu) je nákladné, takže pokud ji potřebujete použít v vnořeném for příkazu, vytvořte pro rozsah místní proměnnou. Příklad:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
var span = chunk.Span;
for(int i = 0; i < span.Length; i++)
{
/* operations on span[i] */
}
}