StringBuilder.GetChunks 方法

定義

傳回物件,可用來逐一查看從這個 StringBuilder 執行個體建立的 ReadOnlyMemory<Char> 中所表示字元區塊。

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

傳回

StringBuilder.ChunkEnumerator

ReadOnlyMemory<Char> 中的區塊列舉值。

備註

您可以使用如下的程式碼,逐一查看記憶體範圍中的區塊:

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

這個方法的目的是要有效率地將常數的資料解壓縮 StringBuilder 。 如果在 StringBuilder 區塊列舉不完整的情況下修改,則結果為未定義。 StringBuilder 也不是安全線程,因此使用平行線程操作它是不合法的。

ReadOnlyMemory<T>如果已修改,則不保證傳回的區塊會保持不變 StringBuilder ,因此請勿快取以供日後使用。

ReadOnlySpan<T> ReadOnlyMemory<T> ReadOnlyMemory<T>.Span 上述範例中,從 (建立,) 的成本很高,因此,如果您需要在嵌套的語句中使用它,請建立範圍的本機變數 for 。 例如:

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

適用於