StringBuilder.GetChunks 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
回傳一個物件,可用於從此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 也不是執行緒安全的,因此用並行執行緒操作是違法的。
ReadOnlyMemory<T>回傳的區塊若被修改後無法保證保持不變StringBuilder,因此請勿快取以備後續使用。
從 建立 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] */
}
}