Bagikan melalui


StringBuilder.GetChunks Metode

Definisi

Mengembalikan objek yang dapat digunakan untuk melakukan iterasi melalui potongan karakter yang diwakili dalam ReadOnlyMemory<Char> yang dibuat dari instans StringBuilder ini.

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 dalam 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 konstanta secara efisienStringBuilder. Jika StringBuilder dimodifikasi saat enumerasi gugus tidak lengkap, hasilnya tidak ditentukan. StringBuilder juga tidak aman untuk utas, jadi mengoperasikannya dengan utas bersamaan adalah ilegal.

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

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

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