StringBuilder.GetChunks Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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] */
}
}