String (System.String) - это тип, определенный внутри .NET Framework. Класс String не является изменяемым. Это означает, что каждый раз, когда вы выполняете действие с экземпляром System.String, компилятор .NET создает новый экземпляр строки. Эта операция скрыта для разработчика.
System.Text.StringBuilder - это класс, который представляет изменяемую строку. Этот класс предоставляет несколько полезных методов, которые позволяют пользователю управлять строкой, обернутой StringBuilder. Обратите внимание, что все манипуляции выполняются в одном экземпляре StringBuilder.
Microsoft рекомендует использовать StringBuilder, поскольку он более эффективен с точки зрения использования памяти.