StringBuilder.GetChunks Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar ett objekt som kan användas för att iterera genom de teckensegment som representeras i en ReadOnlyMemory<Char> som skapats från den här StringBuilder instansen.
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
Returer
En uppräkning för segmenten ReadOnlyMemory<Char>i .
Kommentarer
Du kan iterera segmenten i minnesområdet med kod som följande:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
foreach(char ch in chunk.Span)
{ /* operations on ch */ }
Syftet med den här metoden är att effektivt extrahera data från en konstantStringBuilder. StringBuilder Om ändras medan segmentuppräkningen är ofullständig är resultatet odefinierat. StringBuilder är inte heller trådsäkert, så det är inte tillåtet att arbeta på den med samtidiga trådar.
De ReadOnlyMemory<T> segment som returneras är inte garanterade att förbli oförändrade om de StringBuilder ändras, så cachelagrar dem inte för senare användning.
Att skapa en ReadOnlySpan<T> från en ReadOnlyMemory<T> (som ReadOnlyMemory<T>.Span metoden gör i föregående exempel) är dyrt, så skapa en lokal variabel för intervallet om du behöver använda den i en kapslad for instruktion. Ett exempel:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
var span = chunk.Span;
for(int i = 0; i < span.Length; i++)
{
/* operations on span[i] */
}
}