This question has already been answered:
- String performance 1 response
Update: My tests were incorrect. StringBuilder wins even with 5 strings combined
I compared the performance of StringBuilder and String.Concat with a different number of strings, given the time to create a StringBuilder object.
When concatenating 5 strings, String.Concat is always faster, sometimes 10 times. 
When 10 strings are combined, String.Concat is always faster, sometimes 10 times. 
When you combine 20 strings, String.Concat is always faster, sometimes 10 times. 
Does it make sense to use StringBuilder to combine a small number of strings? Like the StringBuilder object in itself takes more resources than 20 strings.
The code that was used for the test:
class Program { static void Main(string[] args) { const int countOfStrings = 20; string[] stringsToMerge = new string[countOfStrings]; for (int i = 0; i < countOfStrings; i++) { stringsToMerge[i] = "stringN" + i; } Console.WriteLine("Count of strings:" + countOfStrings); Stopwatch stopWatch = new Stopwatch(); TimeSpan ts; stopWatch.Start(); stopWatch.Stop(); stopWatch.Restart(); string s = stringsToMerge[0]; for (int i = 1; i < countOfStrings; i++) { s = string.Concat(s, stringsToMerge[i]); } stopWatch.Stop(); ts = stopWatch.Elapsed; Console.WriteLine("String.Concat ms:" + ts.TotalMilliseconds); stopWatch.Restart(); StringBuilder stringBuilder = new StringBuilder(stringsToMerge[0]); for (int i = 1; i < countOfStrings; i++) { stringBuilder.Append(stringsToMerge[i]); } stopWatch.Stop(); ts = stopWatch.Elapsed; Console.WriteLine("StringBuilder ms:" + ts.TotalMilliseconds); Console.ReadKey(); } }
stringsToMerge[i] = "stringNstringNstringNstringNstringNstringNstringNstringNstringNstringN" + i;already in quantities of 5 pcs.stringdoes not look better thanSB, and at 20 is already hopelessly lagging behind - Andrey NOP