OOP C#


Stringbuilder


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.

 

Nyckelfunktioner hos 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.

 

Grundläggande användning

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 och längd

  •  
  • 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.

 

 English text:

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.

 

Key Features of 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.

 

Basic Usage

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 and Length

  • 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: