String is Immutable in C# and Java, Use of String builder in C#
In C# a string is immutable and cannot be altered. When you alter a string, you are actually creating a new string, which in turn uses more memory than necessary, creates more work for the garbage collector and makes the code execution run slower. When a string is being modified frequently it begins to be a burden on performance .This seemingly innocent example below creates three string objects.
string msg = "Your total is ";//String object 1 is created
msg += "$500 "; //String object 2 is created
msg += DateTime.Now(); //String object 3 is created
StringBuilder is a string-like object whose value is a mutable sequence of characters. The value is said to be mutable because it can be modified once it has been created by appending, removing, replacing, or inserting characters. You would modify the above code like this.
StringBuilder sb = new StringBuilder();
sb.Append("Your total is ");
The individual characters in the value of a StringBuilder can be accessed with the Chars property. Index positions start from zero.