StringBuilder.GetChunks Método

Definición

Devuelve un objeto que se puede utilizar para recorrer en iteración los fragmentos de caracteres representados en un elemento ReadOnlyMemory<Char> creado a partir de esta instancia 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

StringBuilder.ChunkEnumerator

Enumerador de los fragmentos en ReadOnlyMemory<Char>.

Comentarios

Puede iterar los fragmentos en el intervalo de memoria con código como el 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 se StringBuilder modifica mientras la enumeración de fragmentos está incompleta, el resultado es indefinido. StringBuilder tampoco es seguro para subprocesos, por lo que no es posible trabajar en él con subprocesos simultáneos.

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

Crear un a partir de un (como hace el método en el ejemplo anterior) es costoso, por lo que cree una variable local para el intervalo si necesita usarla en ReadOnlySpan<T> ReadOnlyMemory<T> una instrucción ReadOnlyMemory<T>.Span 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