Concatenar es fácil, formatear es divertido, pero construir es óptimo.
Supongamos que debemos concatenar texto1, texto2 y texto3 (todos strings).
Si queremos hacerlo de manera fácil, basta con:
return texto1 + texto2 + texto3;
Si queremos hacerlo en forma elegante:
return String.Format ("{0}{1}{2}", texto1, texto2, texto3);
Si queremos hacerlo de forma óptima:
System.Text.StringBuilder sb = new System.Text.StringBuilder ();
sb.Append (texto1);
sb.Append (texto2);
sb.Append (texto3);
Pero aquí están los números:
Concatenar [00:00:00.0085810] (60x!!!!)
Formatear [00:00:00.0028400] (19x!!)
Construir [00:00:00.0001430] (1x)
¿Por qué concatenar es más lento que las otras opciones si, en el fondo, hacen lo mismo? La respuesta es: porque necesitaremos concatenar dos veces. Esto implica construir dos strings nuevos (texto1 + texto2) y luego el string final que incluye a texto3.
Los string sos costosos, aunque nos
cueste creerlo.
Para mí, String.Format es la mezcla perfecta... es simple, fácil de leer y más óptimo que concatenar.