Каков наиболее эффективный способ объединения строк?
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
если у вас есть создать массив для него на месте.