Qual é a maneira mais eficiente de concatenar seqüências de caracteres?
StringBuildercasos de uso podem ser encontradas aqui .
String.Formatem esteróides. O que, em termos de desempenho, é um pouco mais lento em um liners do que +e String.Concat, mas muito melhor do que aqueles, embora mais lento do que StringBuilderem várias chamadas. Na prática, as diferenças de desempenho são tais que, se eu tivesse que escolher apenas uma maneira de concatenar, escolheria interpolações de strings usando $... Se duas maneiras, adicione StringBuilderà minha caixa de ferramentas. Com essas duas maneiras que você está definido.
String.Joinresposta abaixo não faz +justiça e é, na prática, uma péssima maneira de concatenar strings, mas é surpreendentemente rápida em termos de desempenho. A resposta porque é interessante. String.Concate String.Joinambos podem atuar em matrizes, mas String.Joinna verdade são mais rápidos. Aparentemente, String.Joiné bastante sofisticado e mais otimizado do que String.Concat, em parte porque opera de maneira semelhante ao StringBuilderque calcula primeiro o comprimento da string e depois constrói a string que se beneficia desse conhecimento usando o UnSafeCharBuffer.
String.Jointambém requer a construção de uma matriz que parece ineficiente, certo? ... Acontece que, +e de String.Concatqualquer maneira, constrói matrizes para seus constituintes. Conseqüentemente, criar manualmente uma matriz e alimentá-la String.Joiné comparativamente mais rápido ... no entanto, StringBuilderainda supera String.Joinem todos os aspectos práticos, enquanto $é apenas um pouco mais lento e muito mais rápido em longas seqüências de caracteres ... para não mencionar que é complicado e feio de usar String.Joinse você tiver para criar uma matriz para ele no local.