Струны соединения и сложности? - PullRequest
4 голосов
/ 25 августа 2009

Когда мне нужно соединить две строки, я использую String.Format (или StringBuilder, если это происходит в нескольких местах кода).

Я вижу, что некоторые хорошие программисты не обращают внимания на сложность строк и просто используют оператор '+'.

Я знаю, что использование оператора '+' заставляет приложение использовать больше памяти, но как насчет сложности?

Ответы [ 12 ]

0 голосов
/ 25 августа 2009

Уже много информации, но я всегда чувствовал, что лучший способ подойти к вопросу производительности - это понять различия в производительности всех жизнеспособных решений, а для тех, которые отвечают требованиям к производительности, выбрать наиболее надежное. и наиболее поддерживаемый.

Многие используют нотацию Big O, чтобы понять сложность, но я обнаружил, что в большинстве случаев (включая понимание того, какие методы конкатенации строк работают лучше всего) достаточно простого временного испытания. Просто сравните strA + strB со strA.Append (strB) в цикле из 100 000 итераций, чтобы увидеть, какой из них работает быстрее.

0 голосов
/ 25 августа 2009

Компилятор оптимизирует: «a» + «b» + «c» будет заменено методом String.Concat (не String.Format, как исправлено мной)

...