Rappresenta una stringa mutabile di caratteri. La classe non può essere ereditata.
System.Text.StringBuilder
Spazio dei nomi: System.Text
Assembly: mscorlib (in mscorlib.dll)
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public NotInheritable Class StringBuilder _ Implements ISerializable
[SerializableAttribute] [ComVisibleAttribute(true)] public sealed class StringBuilder : ISerializable
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class StringBuilder sealed : ISerializable
[<Sealed>] [<SerializableAttribute>] [<ComVisibleAttribute(true)>] type StringBuilder = class interface ISerializable end
Il tipo StringBuilder espone i seguenti membri.
| Nome | Descrizione | |
|---|---|---|
|
StringBuilder() | Inizializza una nuova istanza della classe StringBuilder. |
|
StringBuilder(Int32) | Consente l'inizializzazione di una nuova istanza della classe StringBuilder utilizzando la capacità specificata. |
|
StringBuilder(String) | Consente l'inizializzazione di una nuova istanza della classe StringBuilder utilizzando la stringa specificata. |
|
StringBuilder(Int32, Int32) | Consente l'inizializzazione di una nuova istanza della classe StringBuilder che inizia con una capacità specificata e raggiunge il valore massimo specificato. |
|
StringBuilder(String, Int32) | Consente l'inizializzazione di una nuova istanza della classe StringBuilder utilizzando la stringa e la capacità specificate. |
|
StringBuilder(String, Int32, Int32, Int32) | Inizializza una nuova istanza della classe StringBuilder dalla sottostringa e la capacità specificate. |
| Nome | Descrizione | |
|---|---|---|
|
Capacity | Ottiene o imposta il numero massimo di caratteri che possono essere contenuti nella memoria allocata dall'istanza corrente. |
|
Chars | Ottiene o imposta il carattere nella posizione di carattere specificata in questa istanza. |
|
Length | Ottiene o imposta la lunghezza dell'oggetto StringBuilder corrente. |
|
MaxCapacity | Viene fornita la capacità massima di questa istanza. |
| Nome | Descrizione | |
|---|---|---|
|
Append(Boolean) | Consente di accodare la rappresentazione di stringa di un valore Booleano specificato a questa istanza. |
|
Append(Byte) | Accoda la rappresentazione di stringa di un intero senza segno a 8 bit specificato a questa istanza. |
|
Append(Char) | Consente di accodare la rappresentazione di stringa di un carattere Unicode specificato a questa istanza. |
|
Append(Char[]) | Consente di accodare la rappresentazione di stringa dei caratteri Unicode in una matrice specificata a questa istanza. |
|
Append(Decimal) | Consente di accodare la rappresentazione di stringa di un numero decimale specificato a questa istanza. |
|
Append(Double) | Consente di accodare la rappresentazione di stringa di un numero in virgola mobile e precisione doppia specificato a questa istanza. |
|
Append(Int16) | Accoda la rappresentazione di stringa di un intero con segno a 16 bit specificato a questa istanza. |
|
Append(Int32) | Accoda la rappresentazione di stringa di un intero con segno a 32 bit specificato a questa istanza. |
|
Append(Int64) | Accoda la rappresentazione di stringa di un intero con segno a 64 bit specificato a questa istanza. |
|
Append(Object) | Consente di accodare la rappresentazione di stringa di un oggetto specificato a questa istanza. |
|
Append(SByte) | Accoda la rappresentazione di stringa di un intero con segno a 8 bit specificato a questa istanza. |
|
Append(Single) | Consente di accodare la rappresentazione di stringa di un numero in virgola mobile a precisione singola specificato a questa istanza. |
|
Append(String) | Consente di accodare una copia della stringa specificata a questa istanza. |
|
Append(UInt16) | Accoda la rappresentazione di stringa di un intero senza segno a 16 bit specificato a questa istanza. |
|
Append(UInt32) | Accoda la rappresentazione di stringa di un intero senza segno a 32 bit specificato a questa istanza. |
|
Append(UInt64) | Accoda la rappresentazione di stringa di un intero senza segno a 64 bit specificato a questa istanza. |
|
Append(Char, Int32) | Consente di accodare un numero specificato di copie della rappresentazione di stringa di un carattere Unicode a questa istanza. |
|
Append(Char[], Int32, Int32) | Consente di accodare la rappresentazione di stringa di una sottomatrice specificata di caratteri Unicode a questa istanza. |
|
Append(String, Int32, Int32) | Consente di accodare una copia della sottostringa specificata a questa istanza. |
|
AppendFormat(String, Object) | Accoda all'istanza la stringa restituita tramite l'elaborazione di una stringa di formato composito, che contiene zero o più elementi di formato. Ogni elemento di formato viene sostituito dalla rappresentazione di stringa di un singolo argomento. |
|
AppendFormat(String, Object[]) | Accoda all'istanza la stringa restituita tramite l'elaborazione di una stringa di formato composito, che contiene zero o più elementi di formato. Ogni elemento di formato viene sostituito dalla rappresentazione di stringa di un argomento corrispondente in una matrice di parametri. |
|
AppendFormat(IFormatProvider, String, Object[]) | Accoda all'istanza la stringa restituita tramite l'elaborazione di una stringa di formato composito, che contiene zero o più elementi di formato. Ogni elemento di formato viene sostituito dalla rappresentazione di stringa di un argomento corrispondente in una matrice di parametri, utilizzando un provider del formato specificato. |
|
AppendFormat(String, Object, Object) | Accoda all'istanza la stringa restituita tramite l'elaborazione di una stringa di formato composito, che contiene zero o più elementi di formato. Ogni elemento di formato viene sostituito dalla rappresentazione di stringa di uno dei due argomenti. |
|
AppendFormat(String, Object, Object, Object) | Accoda all'istanza la stringa restituita tramite l'elaborazione di una stringa di formato composito, che contiene zero o più elementi di formato. Ogni elemento di formato viene sostituito dalla rappresentazione di stringa di uno dei tre argomenti. |
|
AppendLine() | Accoda il terminatore di riga predefinito alla fine dell'oggetto StringBuilder corrente. |
|
AppendLine(String) | Accoda una copia della stringa specificata seguita dal carattere di terminazione della riga predefinito alla fine dell'oggetto StringBuilder corrente. |
|
Clear | Rimuove tutti i caratteri dall'istanza di StringBuilder corrente. |
|
CopyTo | Copia i caratteri dal segmento specificato di questa istanza al segmento specificato di una matrice Char di destinazione. |
|
EnsureCapacity | Viene garantito che la capacità di questa istanza di StringBuilder corrisponda almeno al valore specificato. |
|
Equals(Object) | Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object) |
|
Equals(StringBuilder) | Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato. |
|
Finalize | Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object) |
|
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) |
|
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
|
Insert(Int32, Boolean) | Consente di inserire una rappresentazione di stringa di un valore Booleano in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, Byte) | Consente di inserire una rappresentazione di stringa di un Unsigned Integer a 8 bit specificato in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, Char) | Viene inserita una rappresentazione di stringa di un carattere Unicode specificato in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, Char[]) | Viene inserita una rappresentazione di stringa di una matrice specificata di caratteri Unicode in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, Decimal) | Consente di inserire una rappresentazione di stringa di un numero decimale in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, Double) | Inserisce una rappresentazione di stringa di un numero in virgola mobile e precisione doppia in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, Int16) | Inserisce la rappresentazione di stringa di un Signed Integer a 16 bit specificato in questa istanza in corrispondenza della posizione del carattere specificata. |
|
Insert(Int32, Int32) | Inserisce la rappresentazione di stringa di un Signed Integer a 32 bit specificato in questa istanza in corrispondenza della posizione del carattere specificata. |
|
Insert(Int32, Int64) | Consente di inserire una rappresentazione di stringa di un Signed Integer a 64 bit in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, Object) | Consente di inserire una rappresentazione di stringa di un oggetto in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, SByte) | Inserisce la rappresentazione di stringa di un Signed Integer a 8 bit specificato in questa istanza in corrispondenza della posizione del carattere specificata. |
|
Insert(Int32, Single) | Consente di inserire una rappresentazione di stringa di un numero in virgola mobile e precisione singola in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, String) | Consente di inserire una stringa in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, UInt16) | Inserisce la rappresentazione di stringa di un Unsigned Integer a 16 bit in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, UInt32) | Inserisce la rappresentazione di stringa di un Unsigned Integer a 32 bit in questa istanza in corrispondenza della posizione del carattere specificata. |
|
Insert(Int32, UInt64) | Inserisce la rappresentazione di stringa di un Unsigned Integer a 64 bit in questa istanza in corrispondenza della posizione del carattere specificata. |
|
Insert(Int32, String, Int32) | Consente di inserire una o più copie di una stringa specificata in questa istanza nella posizione del carattere specificata. |
|
Insert(Int32, Char[], Int32, Int32) | Consente di inserire una rappresentazione di stringa di una sottomatrice specificata di caratteri Unicode in questa istanza nella posizione del carattere specificata. |
|
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) |
|
Remove | Consente di rimuovere l'intervallo di caratteri specificato da questa istanza. |
|
Replace(Char, Char) | Tutte le occorrenze di un carattere specificato in questa istanza vengono sostituite con un altro carattere specificato. |
|
Replace(String, String) | Tutte le occorrenze di una stringa specificata in questa istanza vengono sostituite con un'altra stringa specificata. |
|
Replace(Char, Char, Int32, Int32) | Tutte le occorrenze di un carattere specificato in una sottostringa di questa istanza vengono sostituite con un altro carattere specificato. |
|
Replace(String, String, Int32, Int32) | Tutte le occorrenze di una stringa specificata in una sottostringa di questa istanza vengono sostituite con un'altra stringa specificata. |
|
ToString() | Consente di convertire il valore di questa istanza in String. (Esegue l'override di Object.ToString()). |
|
ToString(Int32, Int32) | Converte il valore di una sottostringa dell'istanza in un String. |
| Nome | Descrizione | |
|---|---|---|
|
ISerializable.GetObjectData | Infrastruttura. Popola un oggetto System.Runtime.Serialization.SerializationInfo con i dati necessari per deserializzare l'oggetto StringBuilder corrente. |
Questa classe rappresenta un oggetto simile a una stringa il cui valore è una sequenza mutabile di caratteri. Il valore viene considerato mutabile perché può essere modificato dopo essere stato creato aggiungendo, rimuovendo, sostituendo o inserendo dei caratteri. Per confronti, vedere la classe String.
Gran parte dei metodi che modificano un'istanza di questa classe restituiscono un riferimento alla stessa istanza. Poiché viene restituito un riferimento all'istanza, è possibile chiamare un metodo o proprietà sul riferimento. Questa operazione può rivelarsi utile se si desidera scrivere una singola istruzione che raccoglie operazioni successive.
La capacità di una StringBuilder è il numero massimo di caratteri che l'istanza può memorizzare in un determinato momento ed è maggiore o uguale alla lunghezza della rappresentazione di stringa del valore dell'istanza. La capacità può essere aumentata o diminuita tramite la proprietà Capacity o il metodo EnsureCapacity ma non può essere inferiore al valore della proprietà Length.
I valori predefiniti specifici dell'implementazione vengono utilizzati se non viene specificata la capacità o la capacità massima quando un'istanza di StringBuilder viene inizializzata.
Considerazioni sulle prestazioni
Entrambi i metodi Concat e AppendFormat concatenano nuovi dati in un oggetto String o StringBuilder esistente. L'operazione di concatenazione dell'oggetto String crea sempre un nuovo oggetto dalla stringa esistente e dai nuovi dati. L'oggetto StringBuilder dispone di un buffer per includere la concatenazione dei nuovi dati. I nuovi dati vengono aggiunti alla fine del buffer se è disponibile spazio sufficiente. In caso contrario, viene allocato un nuovo buffer di dimensioni maggiori, nel quale i dati vengono accodati dopo essere stati copiati dal buffer originale.
Le prestazioni di un'operazione di concatenazione per un oggetto String o StringBuilder dipendono dalla frequenza con cui viene allocata la memoria. In un'operazione di concatenazione String la memoria viene sempre allocata, mentre in un'operazione di concatenazione StringBuilder viene allocata solo se il buffer dell'oggetto StringBuilder non dispone di spazio sufficiente per l'inserimento dei nuovi dati. Di conseguenza, per un'operazione di concatenazione è consigliabile utilizzare la classe String se viene concatenato un numero fisso di oggetti String. In questo caso, è possibile persino che il compilatore combini le singole operazioni di concatenazione in un'unica operazione. Se, invece, viene concatenato un numero arbitrario di stringhe, ad esempio, se un ciclo concatena un numero casuale di stringhe dell'input utente, è preferibile utilizzare un oggetto StringBuilder.
Note per gli implementatori
La capacità predefinita per questa implementazione è 16 e la capacità minima predefinita è Int32.MaxValue.
Con StringBuilder è possibile allocare una maggiore quantità di memoria per consentire di memorizzare i caratteri quando il valore di un'istanza viene aumentato e la capacità viene regolata di conseguenza. La quantità di memoria allocata dipende dall'implementazione e, qualora la quantità di memoria richiesta sia superiore alla capacità massima, verrà generata l'eccezione ArgumentOutOfRangeException o OutOfMemoryException.
I metodi Append, AppendFormat, EnsureCapacity, Insert e Replace, ad esempio, aumentare il valore di un'istanza.
È possibile accedere ai singoli caratteri nel valore di un StringBuilder con la proprietà Chars. Le posizioni di indice iniziano da zero.
Nell'esempio riportato di seguito viene illustrato come chiamare vari metodi definiti dalla classe StringBuilder.
Imports System.Text Public Module App Public Sub Main() ' Create a StringBuilder that expects to hold 50 characters. ' Initialize the StringBuilder with "ABC". Dim sb As New StringBuilder("ABC", 50) ' Append three characters (D, E, and F) to the end of the StringBuilder. sb.Append(New Char() {"D"c, "E"c, "F"c}) ' Append a format string to the end of the StringBuilder. sb.AppendFormat("GHI{0}{1}", "J"c, "k"c) ' Display the number of characters in the StringBuilder and its string. Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString()) ' Insert a string at the beginning of the StringBuilder. sb.Insert(0, "Alphabet: ") ' Replace all lowercase k's with uppercase K's. sb.Replace("k", "K") ' Display the number of characters in the StringBuilder and its string. Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString()) End Sub End Module ' This code produces the following output. ' ' 11 chars: ABCDEFGHIJk ' 21 chars: Alphabet: ABCDEFGHIJK
using System; using System.Text; public sealed class App { static void Main() { // Create a StringBuilder that expects to hold 50 characters. // Initialize the StringBuilder with "ABC". StringBuilder sb = new StringBuilder("ABC", 50); // Append three characters (D, E, and F) to the end of the StringBuilder. sb.Append(new char[] { 'D', 'E', 'F' }); // Append a format string to the end of the StringBuilder. sb.AppendFormat("GHI{0}{1}", 'J', 'k'); // Display the number of characters in the StringBuilder and its string. Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString()); // Insert a string at the beginning of the StringBuilder. sb.Insert(0, "Alphabet: "); // Replace all lowercase k's with uppercase K's. sb.Replace('k', 'K'); // Display the number of characters in the StringBuilder and its string. Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString()); } } // This code produces the following output. // // 11 chars: ABCDEFGHIJk // 21 chars: Alphabet: ABCDEFGHIJK
using namespace System; using namespace System::Text; int main() { // Create a StringBuilder that expects to hold 50 characters. // Initialize the StringBuilder with "ABC". StringBuilder^ sb = gcnew StringBuilder("ABC", 50); // Append three characters (D, E, and F) to the end of the // StringBuilder. sb->Append(gcnew array<Char>{'D', 'E', 'F'}); // Append a format string to the end of the StringBuilder. sb->AppendFormat("GHI{0}{1}", (Char)'J', (Char)'k'); // Display the number of characters in the StringBuilder // and its string. Console::WriteLine("{0} chars: {1}", sb->Length, sb->ToString()); // Insert a string at the beginning of the StringBuilder. sb->Insert(0, "Alphabet: "); // Replace all lowercase k's with uppercase K's. sb->Replace('k', 'K'); // Display the number of characters in the StringBuilder // and its string. Console::WriteLine("{0} chars: {1}", sb->Length, sb->ToString()); } // This code produces the following output. // // 11 chars: ABCDEFGHIJk // 21 chars: Alphabet: ABCDEFGHIJK
.NET Framework
Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supportato in: 4, 3.5 SP1Supportato in:
Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.