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 ,因此請勿快取以供日後使用。
在 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] */
}
}