Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Verwenden der StringBuilder-Klasse in .NET Framework

Das String-Objekt ist unveränderlich. Jedes Mal, wenn Sie eine der Methoden aus der System.String-Klasse verwenden, erstellen Sie im Arbeitsspeicher ein neues Zeichenfolgenobjekt, für das zusätzlicher Speicherplatz belegt werden muss. In Situationen, in denen Sie wiederholt Änderungen an einer Zeichenfolge vornehmen müssen, kann durch die ständige Neuerstellung des String-Objekts ein erheblicher Mehraufwand entstehen. Mithilfe der System.Text.StringBuilder-Klasse kann eine Zeichenfolge geändert werden, ohne dass ein neues Objekt erstellt werden muss. Durch die Verwendung der StringBuilder-Klasse kann z. B. die Leistung gesteigert werden, wenn zahlreiche Zeichenfolgen in einer Schleife verkettet werden.

Sie können eine neue Instanz der StringBuilder-Klasse erstellen, indem Sie die Variable mit einer der Methoden für überladene Konstruktoren initialisieren, wie im folgenden Beispiel verdeutlicht.


StringBuilder MyStringBuilder = new StringBuilder("Hello World!");


Beim StringBuilder handelt es sich um ein dynamisches Objekt, das es Ihnen ermöglicht, die Anzahl der Zeichen in der darin gekapselten Zeichenfolge zu erhöhen. Sie können jedoch auch einen Wert für die maximale Anzahl von Zeichen festlegen, die das Objekt einschließen darf. Dieser Wert wird als die Kapazität des Objekts bezeichnet und darf nicht mit der Länge der Zeichenfolge verwechselt werden, die im aktuellen StringBuilder enthalten ist. Sie können z. B. eine neue Instanz der StringBuilder-Klasse mit der Zeichenfolge "Hello" erstellen, die eine Länge von 5 Zeichen aufweist. Danach können Sie festlegen, dass das Objekt eine maximale Kapazität von 25 Zeichen hat. Bei einer Änderung der StringBuilder Klasse wird erst dann ein neuer Größenwert zugeordnet, wenn die Kapazitätsgrenze erreicht ist. Tritt dieser Fall ein, wird der neue Speicherplatz automatisch zugeordnet und die Kapazität verdoppelt. Sie können die Kapazität der StringBuilder-Klasse festlegen, indem Sie einen der überladenen Konstruktoren verwenden. Im folgenden Beispiel wird festgelegt, dass das MyStringBuilder-Objekt auf maximal 25 Stellen erweitert werden kann.


StringBuilder MyStringBuilder = new StringBuilder("Hello World!", 25);  


Darüber hinaus können Sie die Capacity-Eigenschaft mit Schreib-/Lesezugriff verwenden, um die maximale Objektlänge festzulegen. Im folgenden Beispiel wird die Capacity-Eigenschaft verwendet, um die maximale Objektlänge zu definieren.


MyStringBuilder.Capacity = 25;


Mithilfe der EnsureCapacity-Methode kann die Kapazität des aktuellen StringBuilder überprüft werden. Wenn die Kapazität größer als der übergebene Wert ist, wird keine Änderung vorgenommen; ist die Kapazität hingegen geringer als der übergebene Wert, wird die aktuelle Kapazität in Anpassung an den übergebenen Wert verringert.

Außerdem kann die Length-Eigenschaft angezeigt oder festgelegt werden. Wenn Sie für die Length-Eigenschaft einen höheren Wert als die Capacity-Eigenschaft festlegen, wird für die Capacity-Eigenschaft automatisch der gleiche Wert wie für die Length-Eigenschaft festgelegt. Wenn für die Length-Eigenschaft ein Wert festgelegt wird, der geringer als die Länge der Zeichenfolge im aktuellen StringBuilder ist, wird die Zeichenfolge gekürzt.

In der folgenden Tabelle sind die Methoden aufgeführt, mit denen Sie den Inhalt eines StringBuilder ändern können.

Methodenname

Befehl

StringBuilder.Append

Fügt Informationen an das Ende des aktuellen StringBuilder an.

StringBuilder.AppendFormat

Ersetzt einen in einer Zeichenfolge übergebenen Formatbezeichner durch formatierten Text.

StringBuilder.Insert

Fügt eine Zeichenfolge oder ein Objekt in den angegebenen Index des aktuellen StringBuilder ein.

StringBuilder.Remove

Entfernt eine festgelegte Anzahl von Zeichen aus dem aktuellen StringBuilder.

StringBuilder.Replace

Ersetzt ein bestimmtes Zeichen an einem festgelegten Index.

2839d5h5.collapse_all(de-de,VS.110).gifAppend

Mithilfe der Append-Methode kann Text oder eine Zeichenfolgendarstellung eines Objekts am Ende einer Zeichenfolge eingefügt werden, die durch den aktuellen StringBuilder dargestellt wird. Im folgenden Beispiel wird ein StringBuilder mit "Hello World" initialisiert und anschließend Text am Ende des Objekts angefügt. Bei Bedarf wird automatisch Speicherplatz zugeordnet.


StringBuilder MyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Append(" What a beautiful day.");
Console.WriteLine(MyStringBuilder);
// The example displays the following output:
//       Hello World! What a beautiful day.


2839d5h5.collapse_all(de-de,VS.110).gifAppendFormat

Die StringBuilder.AppendFormat-Methode fügt Text am Ende des StringBuilder-Objekts hinzu. Sie unterstützt die Funktion für die kombinierte Formatierung (weitere Informationen finden Sie unter Kombinierte Formatierung) durch Aufrufen der IFormattable-Implementierung der Objekte, die formatiert werden sollen. Die Standardformatzeichenfolgen für numerische Werte, Datums- und Uhrzeitwerte und Enumerationswerte werden daher ebenso akzeptiert wie die benutzerdefinierten Formatzeichenfolgen, die für numerische Werte sowie Datums- und Uhrzeitwerte festgelegt wurden, und die Formatzeichenfolgen, die für benutzerdefinierte Typen definierten wurden. (Weitere Informationen zur Formatierung finden Sie unter Formatieren von Typen in .NET Framework.) Sie können diese Methode verwenden, um das Format von Variablen anzupassen und diese Werte an StringBuilder anzufügen. Im folgenden Beispiel wird die AppendFormat-Methode verwendet, um einen als Währungsbetrag formatierten, ganzzahligen Wert am Ende eines StringBuilder-Objekts einzufügen.


int MyInt = 25; 
StringBuilder MyStringBuilder = new StringBuilder("Your total is ");
MyStringBuilder.AppendFormat("{0:C} ", MyInt);
Console.WriteLine(MyStringBuilder);
// The example displays the following output:
//       Your total is $25.00      


2839d5h5.collapse_all(de-de,VS.110).gifInsert

Mit der Insert-Methode wird einer angegebenen Position im aktuellen StringBuilder-Objekt eine Zeichenfolge oder ein Objekt hinzugefügt. Im folgenden Beispiel wird mit dieser Methode ein Wort an der sechsten Position eines StringBuilder-Objekts eingefügt.


StringBuilder MyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Insert(6,"Beautiful ");
Console.WriteLine(MyStringBuilder);
// The example displays the following output:
//       Hello Beautiful World!


2839d5h5.collapse_all(de-de,VS.110).gifEntfernen

Mithilfe der Remove-Methode können Sie beginnend bei einem festgelegten nullbasierten Index eine bestimmte Anzahl von Zeichen aus dem aktuellen StringBuilder-Objekt entfernen. Im folgenden Beispiel wird ein StringBuilder-Objekt mithilfe einer Remove-Methode gekürzt.


StringBuilder MyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Remove(5,7);
Console.WriteLine(MyStringBuilder);
// The example displays the following output:
//       Hello


2839d5h5.collapse_all(de-de,VS.110).gifErsetzen

Mithilfe der Replace-Methode können Zeichen innerhalb des StringBuilder-Objekts durch ein anderes festgelegtes Zeichen ersetzt werden. Im folgenden Beispiel wird die Replace-Methode verwendet, um in einem StringBuilder-Objekt alle Vorkommnisse des Ausrufezeichens (!) zu suchen und durch das Fragezeichen (?) zu ersetzen.


StringBuilder MyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Replace('!', '?');
Console.WriteLine(MyStringBuilder);
// The example displays the following output:
//       Hello World?


Sie müssen das StringBuilder-Objekt in ein String-Objekt konvertieren, bevor Sie die vom StringBuilder-Objekt dargestellte Zeichenfolge an eine Methode übergeben können, die einen String-Parameter aufweist, oder bevor Sie sie auf der Benutzeroberfläche anzeigen. Diese Konvertierung führen Sie aus, indem Sie die StringBuilder.ToString-Methode aufrufen. Im folgenden Beispiel werden einige StringBuilder-Methode aufgerufen. Dann wird die StringBuilder.ToString()-Methode aufgerufen, um die Zeichenfolge anzuzeigen.


using System;
using System.Text;

public class Example
{
   public static void Main()
   {
      StringBuilder sb = new StringBuilder();
      bool flag = true;
      string[] spellings = { "recieve", "receeve", "receive" };
      sb.AppendFormat("Which of the following spellings is {0}:", flag);
      sb.AppendLine();
      for (int ctr = 0; ctr <= spellings.GetUpperBound(0); ctr++) {
         sb.AppendFormat("   {0}. {1}", ctr, spellings[ctr]);
         sb.AppendLine();
      }
      sb.AppendLine();
      Console.WriteLine(sb.ToString());
   }
}
// The example displays the following output:
//       Which of the following spellings is True:
//          0. recieve
//          1. receeve
//          2. receive


Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft