Use StringBuilder for Complex String Manipulation
When a string is modified, the run time will create a new string and return it, leaving the original to be garbage collected. most of the time this is a fast and simple way to do it, but when a string is being modified repeatedly it begins to be a burden on performance: all of those allocations eventually get expensive. here's a simple example of a program that appends to a string 50,000 times, followed by one that uses a StringBuilder object to modify the string in place. the StringBuilder code is much faster, and if you run them it becomes immediately obvious. namespace ConsoleApplication1.Feedback {using System; public class Feedback {public Feedback () {text = "You have ordered:" ;}public string text; public static int Main (string [] args) {Feedback test = new Feedback (); String str = test. text; for (int I = 0; I <50000; I ++) {str = str + "blue_toothbrush";} System. console. out. writeLine ("done"); return 0 ;}} namespace ConsoleApplication1.Feedback {using System; public class Feedback {public Feedback () {text = "You have ordered :";} public string text; public static int Main (string [] args) {Feedback test = new Feedback (); System. text. stringBuilder SB = new System. text. stringBuilder (test. text); for (int I = 0; I <50000; I ++) {SB. append ("blue_toothbrush");} System. console. out. writeLine ("done"); return 0 ;}}}