Вот у нас есть две огромные строки каждая условно по 1 гигабайту. Вот мы их конкатенируем с помощью String.Concat получим третью строку длинной 2 гигабайта. Сделаем тоже самое с помощью StringBuilder. Что мы выиграем?
В этом случае ничего.
StringBuilder позволяет снизить потребления памяти в случае если вы постепенно инкрементите какую-то строку, например генерите json из кусочков.
String.Concat будет каждый раз создавать новую строку и аллоцировать память.
StringBuilder содержит в себе коллекцию Char, которая дополняется и памяти аллоцируется меньше.
В документации это подробно изложено, рекомендую
https://docs.microsoft.com/ru-ru/dotnet/api/system...