Compartir vía


StringBuilder.GetChunks Método

Definición

Devuelve un objeto que se puede usar para recorrer en iteración los fragmentos de caracteres representados en un ReadOnlyMemory<Char> creado a partir de esta instancia de StringBuilder.

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

Devoluciones

Enumerador de los fragmentos de la ReadOnlyMemory<Char>.

Comentarios

Puede iterar los fragmentos en el intervalo de memoria con código similar al siguiente:

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

El propósito de este método es extraer eficazmente los datos de una constante StringBuilder. Si el StringBuilder se modifica mientras la enumeración de fragmentos está incompleta, el resultado no está definido. StringBuilder tampoco es seguro para subprocesos, por lo que el funcionamiento con subprocesos simultáneos no es válido.

No se garantiza que los fragmentos de ReadOnlyMemory<T> devueltos permanezcan sin cambios si se modifica el StringBuilder, por lo que no se almacenan en caché para su uso posterior.

La creación de un ReadOnlySpan<T> a partir de un ReadOnlyMemory<T> (como hace el método ReadOnlyMemory<T>.Span en el ejemplo anterior) es costosa, por lo que debe crear una variable local para el intervalo si necesita usarla en una instrucción for anidada. Por ejemplo:

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

Se aplica a