A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/c-sharp/c-sharp-string-vs-stringbuilder/ below:

C# String vs StringBuilder - GeeksforGeeks

C# String vs StringBuilder

Last Updated : 11 Jan, 2025

StringBuilder is used to represent a mutable string of characters. Mutable means the string which can be changed. So String objects are immutable but StringBuilder is the mutable string type. It will not create a new modified instance of the current string object but do the modifications in the existing string object. The complete functionality of StringBuilder is provided by StringBuilder class which is present in System.Text namespace.

Need of the StringBuilder: As stated above that the String class objects are immutable which means that if the user will modify any string object it will result into the creation of a new string object. It makes the use of string costly. So when the user needs the repetitive operations on the string then the need of StringBuilder come into existence. It provides the optimized way to deal with the repetitive and multiple string manipulation operations.

String vs StringBuilder Feature String StringBuilder Mutability Immutable (cannot be changed after creation) Mutable (can be changed without creating new objects) Performance Slower for frequent modifications Faster for frequent modifications Memory Usage Creates a new object for each modification Modifies the same object, reducing memory overhead Use Case Use for small or infrequently modified strings Use for large or frequently modified strings Modification Methods Modification requires creating a new string Modification is done in-place Thread Safety Strings are thread-safe StringBuilder is not inherently thread-safe

Example: Demonstrating the differences between String and StringBuilder

C#
// Difference between String Vs StringBuilder 
using System; 
using System.Text; 
using System.Collections; 

class Geeks { 
	// Concatenates to String 
	public static void concat1(String s1) 
	{ 

		// taking a string which 
		// is to be Concatenate 
		String st = "forGeeks"; 

		// using String.Concat method 
		// you can also replace it with 
		// s1 = s1 + "forgeeks"; 
		s1 = String.Concat(s1, st); 
	} 

	// Concatenates to StringBuilder 
	public static void concat2(StringBuilder s2) 
	{ 

		// using Append method 
		// of StringBuilder class 
		s2.Append("forGeeks"); 
	} 

	// Main Method 
	public static void Main(String[] args) 
	{ 

		String s1 = "Geeks"; 
		concat1(s1); // s1 is not changed 
		Console.WriteLine("Using String Class: " + s1); 

		StringBuilder s2 = new StringBuilder("Geeks"); 
		concat2(s2); // s2 is changed 
		Console.WriteLine("Using StringBuilder Class: " + s2); 
	} 
} 

Output
Using String Class: Geeks
Using StringBuilder Class: GeeksforGeeks

Explanation:

Converting String to StringBuilder

To convert a String class object to StringBuilder class object, just pass the string object to the StringBuilder class constructor.

Example:

C#
// Conversion from String to StringBuilder. 
using System; 
using System.Text; 

class Geeks
{ 
	// Main Method 
	public static void Main(String[] args) 
	{ 
		String str = "Geeks"; 

		// conversion from String object 
		// to StringBuilder 
		StringBuilder sbl = new StringBuilder(str); 
		sbl.Append("ForGeeks"); 
		Console.WriteLine(sbl); 
	} 
} 
Converting StringBuilder to String

This conversions can be performed using ToString() method.

Example:

C#
// Conversion from String to StringBuilder 
using System; 
using System.Text; 

class Geeks
{ 
	// Main Method 
	public static void Main(String[] args) 
	{ 

		StringBuilder sbdr = new StringBuilder("Builder"); 

		// conversion from StringBuilder 
		// object to String using ToString method 
		String str1 = sbdr.ToString(); 

		Console.Write("StringBuilder object to String: "); 
		Console.WriteLine(str1); 
	} 
} 

Output
StringBuilder object to String: Builder


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4