¿Cuál es la forma más eficiente de concatenar cadenas?
StringBuilder
puede encontrar información más detallada sobre casos de uso aquí .
String.Format
en los esteroides. Lo cual, en cuanto al rendimiento, es un poco más lento en una línea +
y String.Concat
, pero mucho mejor que eso, aunque más lento que StringBuilder
en varias llamadas. Hablando en términos prácticos, las diferencias de rendimiento son tales que, si tuviera que elegir solo una forma de concatenar, elegiría interpolaciones de cadenas usando $
... Si hay dos formas, luego agregue StringBuilder
a mi caja de herramientas. Con esas dos formas estás listo.
String.Join
respuesta a continuación no hace +
justicia y es, prácticamente hablando, una mala manera de concatenar cadenas, pero es sorprendentemente rápido en cuanto a rendimiento. La respuesta por qué es interesante. String.Concat
y String.Join
ambos pueden actuar en matrices, pero en String.Join
realidad es más rápido. Aparentemente, String.Join
es bastante sofisticado y más optimizado que String.Concat
, en parte porque funciona de manera similar, ya StringBuilder
que calcula la longitud de la cadena primero y luego construye la cadena que se beneficia de este conocimiento utilizando UnSafeCharBuffer.
String.Join
también requiere construir una matriz que parezca ineficiente para los recursos, ¿verdad? ... Resulta eso +
y String.Concat
construye matrices para sus componentes de todos modos. En consecuencia, la creación manual de una matriz y su alimentación String.Join
es comparativamente más rápida ... sin embargo, StringBuilder
aún tiene un rendimiento superior String.Join
en casi todas las formas prácticas, mientras que $
es solo un poco más lenta y mucho más rápida en cadenas largas ... sin mencionar que es incómodo y feo de usar String.Join
si tiene para crear una matriz para ello en el acto.