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 也不安全線程,因此使用並行線程操作是非法的。
如果修改 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] */
}
}