StringBuilder
-klassen i C# är en del av System.Text
-namnrymden och är utformad för effektiv strängmanipulering. Till skillnad från vanliga strängar, som är oföränderliga i C#, låter StringBuilder
dig ändra strängen den innehåller utan att skapa ett nytt strängobjekt varje gång. Detta gör den mycket effektivare för scenarier där du behöver utföra flera strängmanipuleringar, som att lägga till, infoga eller ta bort tecken.
StringBuilder
Föränderlig: Till skillnad från strängar är StringBuilder
-objekt föränderliga, vilket innebär att du kan ändra deras innehåll utan att skapa ett nytt objekt.
Dynamisk storlek: StringBuilder
ändrar automatiskt sin storlek efter behov när du lägger till eller infogar text.
Effektivitet: Den är mer minneseffektiv och snabbare för strängmanipuleringsuppgifter som involverar flera steg, som att lägga till i en loop.
Metoder: Erbjuder olika metoder för strängmanipulering som Append
, Insert
, Remove
, Replace
, etc.
Inga oföränderliga kopior: Eftersom den är föränderlig skapar den inte en ny kopia av strängen i minnet varje gång du gör en ändring, till skillnad från vanlig strängsammansättning.
Trådsäkerhet: Det är värt att notera att StringBuilder
inte är trådsäker. Om du behöver en trådsäker version måste du implementera din egen synkronisering.
Här är några grundläggande operationer du kan utföra med StringBuilder
:
StringBuilder sb = new StringBuilder();
// Lägg till text
sb.Append("Hej, ");
sb.Append("världen!");
// Infoga text på en specifik index
sb.Insert(7, "vacker ");
// Ta bort text
sb.Remove(7, 10);
// Tar bort "vacker "
// Byt ut text
sb.Replace("världen", "alla");
// Konvertera till sträng
string resultat = sb.ToString();
Kapacitet: Antalet teckenpositioner som har allokerats i minnet. Det ökas automatiskt vid behov men kan också ställas in manuellt för optimering.
Längd: Den faktiska längden på strängen som lagras i StringBuilder
.
Du kan komma åt dessa egenskaper så här:
int kapacitet = sb.Capacity;
int längd = sb.Length;
Sammanfattningsvis är StringBuilder
en kraftfull klass för effektiv strängmanipulering, särskilt när du hanterar flera ändringar av en sträng i din kod.
The StringBuilder
class in C# is part of the System.Text
namespace and is designed for efficient string manipulation. Unlike regular strings, which are immutable in C#, StringBuilder
allows you to modify the string it contains without creating a new string object each time. This makes it much more efficient for scenarios where you need to perform multiple string manipulations, like appending, inserting, or removing characters.
StringBuilder
Mutable: Unlike strings, StringBuilder
objects are mutable, meaning you can change their content without creating a new object.
Dynamic Sizing: StringBuilder
automatically resizes itself as needed when you append or insert text.
Efficiency: It is more memory-efficient and faster for string manipulation tasks that involve multiple steps, such as appending in a loop.
Methods: Provides various methods for string manipulation like Append
, Insert
, Remove
, Replace
, etc.
No Immutable Copies: Since it's mutable, it doesn't create a new copy of the string in memory every time you make a change, unlike regular string concatenation.
Thread-Safety: It's worth noting that StringBuilder
is not thread-safe. If you need a thread-safe version, you'd have to implement your own synchronization.
Here are some basic operations you can perform with StringBuilder
:
StringBuilder sb = new StringBuilder();
// Append text
sb.Append("Hello, ");
sb.Append("world!");
// Insert text at a specific index
sb.Insert(7, "beautiful ");
// Remove text
sb.Remove(7, 10);
// Removes "beautiful "
// Replace text
sb.Replace("world", "everyone");
// Convert to string
string result = sb.ToString();
Capacity: The number of character positions that have been allocated in memory. It's automatically increased when needed but can also be set manually for optimization.
Length: The actual length of the string stored in the StringBuilder
.
You can access these properties like so:
int capacity = sb.Capacity;
int length = sb.Length;
In summary, StringBuilder
is a powerful class for efficient string manipulation, especially when you're dealing with multiple changes to a string in your code.
Den här sidan designades av 21C: