StringBuilder.GetChunks Metódus

Definíció

Egy objektumot ad vissza, amely az ebből StringBuilder a példányból létrehozott karaktertömbön ReadOnlyMemory<Char> keresztüli iterálásra használható.

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

Válaszok

Az adattömbök enumerátora a ReadOnlyMemory<Char>.

Megjegyzések

A memóriatartományban lévő adattömböket a következő kóddal iterálhatja:

foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
    foreach(char ch in chunk.Span)
        { /* operations on ch */ }

Ennek a módszernek a célja egy állandóStringBuilder adatainak hatékony kinyerése. Ha a StringBuilder rendszer módosítja az adattömb enumerálásának befejezetlen részét, az eredmény nem lesz meghatározva. StringBuilder sem szálbiztos, ezért az egyidejű szálakkal való üzemeltetés illegális.

A ReadOnlyMemory<T> visszaadott adattömbök nem garantáltan változatlanok maradnak, ha módosítják őket StringBuilder , ezért ne gyorsítótárazza őket későbbi használatra.

ReadOnlySpan<T> Egy (ReadOnlyMemory<T>az ReadOnlyMemory<T>.Span előző példában használt módszerhez hasonlóan) létrehozott változó költséges, ezért hozzon létre egy helyi változót a spanhoz, ha beágyazott for utasításban kell használnia. Például:

foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
    var span = chunk.Span;
    for(int i = 0; i < span.Length; i++)
    {
        /* operations on span[i] */
    }
}

A következőre érvényes: