共用方式為


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

傳回

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

備註

您可以使用類似下列程式代碼來反覆運算記憶體範圍內的區塊:

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

此方法的目的是要有效率地擷取 常數的數據StringBuilder。 如果區塊列舉不完整時修改 StringBuilder,則結果為未定義。 StringBuilder 也不安全線程,因此使用並行線程操作是非法的。

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

ReadOnlyMemory<T> 建立 ReadOnlySpan<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] */
    }
}

適用於