Каков наиболее эффективный способ объединения строк?
StringBuilderслучаях использования можно найти здесь .
String.Formatна стероидах. Который, с точки зрения производительности, немного медленнее на одной линии, чем +и String.Concat, но намного лучше, чем те, хотя и медленнее, чем StringBuilderна нескольких вызовах. Практически говоря, различия в производительности таковы, что, если бы мне пришлось выбирать только один способ объединения, я бы выбрал интерполяцию строк, используя $... Если два пути, то добавьте StringBuilderв свой набор инструментов. С этими двумя способами вы настроены.
String.JoinОтвет ниже не делает +справедливость и, практически говоря, плохой путь для конкатенации строк, но это удивительно высокая производительность мудрого. Ответ почему интересно. String.Concatи String.Joinмогут оба действовать на массивы, но String.Joinна самом деле быстрее. По-видимому, String.Joinон довольно сложный и более оптимизированный, чем String.Concatчастично, потому что он работает аналогично тому, StringBuilderчто сначала вычисляет длину строки, а затем строит строку, извлекая пользу из этого знания, используя UnSafeCharBuffer.
String.Joinтакже требует создания массива, который кажется неэффективным с точки зрения ресурсов, верно? ... Получается, +и String.Concatв любом случае строит массивы для их составляющих. Следовательно, создание массива вручную и его подача String.Joinвыполняется сравнительно быстрее ... однако, он по- StringBuilderпрежнему превосходит String.Joinпрактически все практические способы, хотя $лишь немного медленнее и намного быстрее на длинных строках ... не говоря уже о том, что его неудобно и некрасиво использовать, String.Joinесли у вас есть создать массив для него на месте.