StringBuilder.GetChunks StringBuilder.GetChunks StringBuilder.GetChunks StringBuilder.GetChunks Method

Definição

Retorna um objeto que pode ser usado para iterar nas partes de caracteres representadas em um ReadOnlyMemory<Char> criado usando essa instância de StringBuilder.Returns an object that can be used to iterate through the chunks of characters represented in a ReadOnlyMemory<Char> created from this StringBuilder instance.

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

Retornos

Um enumerador para as partes do ReadOnlyMemory<Char>.An enumerator for the chunks in the ReadOnlyMemory<Char>.

Comentários

Você pode iterar as partes no intervalo de memória com um código semelhante ao seguinte:You can iterate the chunks in the memory range with code like the following:

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

A finalidade desse método é extrair com eficiência os dados de uma constante StringBuilder.The purpose of this method is to efficiently extract the data of a constant StringBuilder. Se o StringBuilder for modificado enquanto a enumeração de partes estiver incompleta, o resultado será indefinido.If the StringBuilder is modified while the chunk enumeration is incomplete, the result is undefined. StringBuildertambém não é thread-safe, portanto, operar com threads simultâneos é ilegal.StringBuilder is also not thread-safe, so operating on it with concurrent threads is illegal.

As ReadOnlyMemory<T> partes retornadas não têm garantia de permanecer inalteradas se o StringBuilder for modificado, portanto não as armazene em cache para uso posterior.The ReadOnlyMemory<T> chunks returned are not guaranteed to remain unchanged if the StringBuilder is modified, so do not cache them for later use.

Criar um ReadOnlySpan<T> de um ReadOnlyMemory<T> (como o ReadOnlyMemory<T>.Span método no exemplo anterior, é caro, portanto, crie uma variável local para o span se você precisar usá-la em uma instrução aninhada for .Creating a ReadOnlySpan<T> from a ReadOnlyMemory<T> (as the ReadOnlyMemory<T>.Span method does in the previous example, is expensive, so create a local variable for the span if you need to use it in a nested for statement. Por exemplo:For example:

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