Arquivo da categoria ‘Classe’

Melhorando desempenho: A classe StringBuilder

Publicado: 18 de maio de 2012 por Prof @Virtualiza Cooperativa em Classe, Desempenho, Dicas, StringBuilder

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();


Artigo retirado do site: http://www.dotnetmaniacs.com.br