Apesar da versatilidade da classe string, operações com string podem consumir muitos recursos e causar perda de desempenho. Isto ocorre porque a cada operação o framework cria um novo buffer para a string resultante da operação, ao invés de aproveitar o buffer que está sendo utilizado. Isto é mais aparente em operações de concatenação.
Para não criar este tipo de problema, podemos utilizar a classe StringBuilder, do namespace System.Text. Esta classe permite a criação de strings aproveitando o buffer utilizado, o que torna o código mais eficiente.
No exemplo a seguir temos um trecho de código com uma operação feita de forma ineficiente e outra mais eficiente usando o stringBuilder, veja a diferença.
// Codigo ineficiente
string sql;
CT * FROM Products";
sql += " WH
sql = "SEL
EERE CategoryId=1 AND";
rice>10";
// Codigo Eficiente
St
sql += " AND Unit
PringBuilder sb =
new StringBuilder();
nd(" WHERE CategoryId=1 AND");
sb.Ap
sb.Append("SELECT * FROM Products");
sb.App
epend(" AND UnitPrice>10");
sql = sb.ToString();