StringBuilder en C#
Las cadenas son inmutables: concatenar repetido copia; un builder no.
using System.Text;
// las cadenas son inmutables; con un builder anexar mucho sale barato
var sb = new StringBuilder();
for (int i = 1; i <= 5; i++)
{
sb.Append("step ").Append(i).AppendLine();
}
sb.Insert(0, "the plan:\n");
Console.WriteLine(sb.ToString());
Console.WriteLine($"length {sb.Length}");
Cómo funciona
AppendyAppendLinehacen crecer el búfer en el lugar.Insert(0, ...)escribe en cualquier posición, incluso al frente.ToString()paga el costo de la cadena una sola vez, al final.
Palabras clave y builtins usados aquí
forintnewusingvar
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 301
- Tokens
- 71
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 45 segundos.
Paso 4 de 4 en Cadenas; paso 7 de 29 en Fundamentos del lenguaje.