Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

StringBuilder

A classe StringBuilder ainda continua sendo usada nessas novas versões do C#? Existe alguma outra biblioteca ou até mesmo outra classe que seja melhor do que essa ?

1 resposta
solução!

Olá Marcelo, tudo bem?

Sim, a classe StringBuilder é utilizada ainda sim!

Você pode usar a concatenação também e em um cenário pequeno não há praticamente diferença nenhuma entre ambos, inclusive concatenando fica até mais fácil a leitura do código.

Agora, em um cenário complexo, onde há inúmeras concatenações, sim, você percebe que utilizando a classe StringBuilder é muito melhor.

A diferença é a forma como o código é executado internamente, pois uma string é imutável, então, para se trabalhar com ela, digamos, concatenar, é preciso criar uma nova string, então imagina fazendo isso milhares de vezes.

Se quiser fazer uma comparação para entender melhor, encontrei um link da própria Microsoft falando sobre o StringBuilder e um código de exemplo comparando ambos os métodos.

const int sLen=30, Loops=5000;
DateTime sTime, eTime;
int i;
string sSource = new String('X', sLen);
string sDest = "";
// 
// Time string concatenation.
// 
sTime = DateTime.Now;
for(i=0;i<Loops;i++) sDest += sSource;
eTime = DateTime.Now;
Console.WriteLine("Concatenation took " + (eTime - sTime).TotalSeconds + " seconds.");
// 
// Time StringBuilder.
// 
sTime = DateTime.Now;
System.Text.StringBuilder sb = new System.Text.StringBuilder((int)(sLen * Loops * 1.1));
for(i=0;i<Loops;i++) sb.Append(sSource);
sDest = sb.ToString();
eTime = DateTime.Now;
Console.WriteLine("String Builder took " + (eTime - sTime).TotalSeconds + " seconds.");
// 
// Make the console window stay open
// so that you can see the results when running from the IDE.
// 
Console.WriteLine();
Console.Write("Press Enter to finish ... ");
Console.Read();

Fonte: https://support.microsoft.com/en-us/help/306822/how-to-improve-string-concatenation-performance-in-visual-c

Espero ter ajudado, e se estiver em dúvida ainda, pode perguntar!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software