StringBuilder.GetChunks Metode

Definisi

Mengembalikan objek yang dapat digunakan untuk melakukan iterasi melalui potongan karakter yang diwakili dalam yang ReadOnlyMemory<Char> dibuat dari instans ini 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

Mengembalikan

Enumerator untuk gugus di ReadOnlyMemory<Char>.

Keterangan

Anda dapat melakukan iterasi potongan dalam rentang memori dengan kode seperti berikut:

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

Tujuan dari metode ini adalah untuk mengekstrak data konstantaStringBuilder secara efisien. StringBuilder Jika dimodifikasi saat enumerasi gugus tidak lengkap, hasilnya tidak ditentukan. StringBuilder juga tidak aman untuk utas, jadi beroperasi di atasnya dengan utas bersamaan adalah ilegal.

Potongan ReadOnlyMemory<T> yang dikembalikan tidak dijamin tetap tidak berubah jika StringBuilder dimodifikasi, jadi jangan cache untuk digunakan nanti.

ReadOnlySpan<T> Membuat dari (ReadOnlyMemory<T>seperti ReadOnlyMemory<T>.Span yang dilakukan metode dalam contoh sebelumnya) mahal, jadi buat variabel lokal untuk rentang jika Anda perlu menggunakannya dalam pernyataan berlapisfor. Contohnya:

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

Berlaku untuk