StringBuilder.GetChunks Método

Definição

Devolve um objeto que pode ser usado para iterar pelos blocos de caracteres representados num ReadOnlyMemory<Char> criado a partir desta StringBuilder instância.

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

Devoluções

Um enumerador para os blocos no ReadOnlyMemory<Char>.

Observações

Pode iterar os chunks no intervalo de memória com código como o seguinte:

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

O objetivo deste método é extrair eficientemente os dados de uma constanteStringBuilder. Se o StringBuilder for modificado enquanto a enumeração de blocos está incompleta, o resultado é indefinido. StringBuilder Também não é seguro para threads, por isso operar nele com threads concorrentes é ilegal.

Os ReadOnlyMemory<T> chunks devolvidos não garantem que permaneçam inalterados se for StringBuilder modificado, por isso não os armazene em cache para uso posterior.

Criar um ReadOnlySpan<T> a partir de a ReadOnlyMemory<T> (como o ReadOnlyMemory<T>.Span método faz no exemplo anterior) é caro, por isso cria uma variável local para o span se precisares de a usar numa instrução aninhada for . Por exemplo:

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

Aplica-se a