My program dynamically builds lots of strings. Is there a way to optimize string performance

Platform: WinForms| Category: Strings

Use the StringBuilder class to concatenate strings. This class reuses memory. If you add string members to concatenate them, there is extra overhead as new memory is allocated for the new string. If you do a series of concatenations using the strings (instead of StringBuilder objects) in a loop, you continually get new strings allocated. StringBuilder objects allocate a buffer, and reuse this buffer in its work, only allocating new space when the initial buffer is consumed. Here is a typical use case.

	StreamReader sr = File.OpenText(dlg.FileName); 
                string s = sr.ReadLine(); 
                StringBuilder sb = new StringBuilder(); 
                while (s != null) 
                { 
                     sb.Append(s); 
                     s = sr.ReadLine(); 
                } 
                sr.Close(); 
                textBox1.Text = sb.ToString(); 

Share with

Related FAQs

Couldn't find the FAQs you're looking for?

Please submit your question and answer.