# + Operatore
string s1 = "string1";
string s2 = "string2";
string s3 = s1 + s2; // "string1string2"
# Concatena stringhe usando System.Text.StringBuilder
La concatenazione di stringhe utilizzando un StringBuilder può offrire vantaggi in termini di prestazioni rispetto alla semplice concatenazione di stringhe utilizzando +
. Ciò è dovuto al modo in cui viene allocata la memoria. Le stringhe vengono riallocate ad ogni concatenazione, StringBuilders alloca la memoria in blocchi riallocando solo quando il blocco corrente è esaurito. Questo può fare un'enorme differenza quando si eseguono molte piccole concatenazioni.
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++)
{
sb.Append(i);
sb.Append(" ");
}
Console.WriteLine(sb.ToString()); // "1 2 3 4 5 "
Chiamate a Append()
può essere collegato a margherita, perché restituisce un riferimento al StringBuilder
:
StringBuilder sb = new StringBuilder();
sb.Append("some string ")
.Append("another string");
# Concat elementi dell'array di stringhe utilizzando String.Join
Il String.Join
può essere utilizzato per concatenare più elementi da un array di stringhe.
string[] value = {"apple", "orange", "grape", "pear"};
string separator = ", ";
string result = String.Join(separator, value, 1, 2);
Console.WriteLine(result);
Produce il seguente output:"arancia, uva"
Questo esempio usa il String.Join(String, String[], Int32, Int32)
overload, che specifica l'indice iniziale e il conteggio sopra il separatore e il valore.
Se non desideri utilizzare startIndex e contare gli overload, puoi unire tutte le stringhe fornite. In questo modo:
string[] value = {"apple", "orange", "grape", "pear"};
string separator = ", ";
string result = String.Join(separator, value);
Console.WriteLine(result);
che produrrà;
mela, arancia, uva, pera
# Concatenazione di due stringhe usando $
$ fornisce un metodo semplice e conciso per concatenare più stringhe.
var str1 = "text1";
var str2 = " ";
var str3 = "text3";
string result2 = $"{str1}{str2}{str3}"; //"text1 text3"
# Osservazioni
Se stai creando una stringa dinamica, è buona norma optare per StringBuilder
class invece di unire stringhe usando + o Concat
metodo come ogni +/Concat
crea un nuovo oggetto stringa ogni volta che viene eseguito.