¿Cuál es la forma más eficiente de concatenar cadenas?
StringBuilderpuede encontrar información más detallada sobre casos de uso aquí .
String.Formaten 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 StringBuilderen 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 StringBuildera mi caja de herramientas. Con esas dos formas estás listo.
String.Joinrespuesta 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.Concaty String.Joinambos pueden actuar en matrices, pero en String.Joinrealidad es más rápido. Aparentemente, String.Joines bastante sofisticado y más optimizado que String.Concat, en parte porque funciona de manera similar, ya StringBuilderque calcula la longitud de la cadena primero y luego construye la cadena que se beneficia de este conocimiento utilizando UnSafeCharBuffer.
String.Jointambién requiere construir una matriz que parezca ineficiente para los recursos, ¿verdad? ... Resulta eso +y String.Concatconstruye matrices para sus componentes de todos modos. En consecuencia, la creación manual de una matriz y su alimentación String.Joines comparativamente más rápida ... sin embargo, StringBuilderaún tiene un rendimiento superior String.Joinen 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.Joinsi tiene para crear una matriz para ello en el acto.