Concatenare stringhe in C#

coding

La concatenazione di stringhe è una delle operazioni più frequenti nello sviluppo. In C# esistono numerosi modi per concatenare stringhe, vediamone qualcuno.

Operatori + e +=

Questi operatori permettono di concatenare in modo chiaro due stringhe, anche se spesso l’interpolazione risulta ancora più leggibile.

var foo = "foo";
var bar = "bar";
var output = "Ciao " + foo + ", mi chiamo" + bar + ".";

Interpolazione 

L’intepolazione permette di ottenere lo stesso risultato della concatenazione ma il codice risulta molto più chiaro e parlante.

var foo = "foo";
var bar = "bar";
var str = $"Ciao {foo}, mi chiamo {bar}.";

String.Format

Questo metodo permette di esplicitare le variabili che voglio inserire nella stringa. Può essere utile per gestire il multilingua.

var foo = "foo";
Console.WriteLine(String.Format("Ciao, mi chiamo {0}.", foo );

StringBuilder

Lo StringBuilder viene utilizzato quando voglio costruire una stringa complessa che prevede tanti passaggi (tipicamente per mezzo di un for). In caso di applicazioni molto veloci questo metodo è da preferire.

var sb = new System.Text.StringBuilder();
for (int i = 0; i < 20; i++)
    sb.AppendLine(i.ToString());

System.Console.WriteLine(sb.ToString());

String.Join

Questo utilissimo metodo permette di ottenere una stringa unica a partire da una lista. I vari elementi della lista vengono uniti da un separatore impostato come primo parametro dello string.Join.

string[] parole= { "pane", "pasta", "pizza" };
var lista = string.Join(" ", parole);
System.Console.WriteLine(lista );

Aggregate

Il seguente metodo lo scrivo per completezza ma, dato che internamente non utilizza StringBuilder, ha prestazioni orribili.

string[] words = { "foo", "bar", "fooBar" };
var res = words.Aggregate("", (current, next) => current + ", " + next);
Console.WriteLine(res);

E ora… quale utilizzare?

Come abbiamo visto esistono vari modi per concatenare stringhe in C#, da questo interessante post otteniamo le seguenti regole:

  • Quando voglio concatenare 4 o meno stringhe conviene utilizzare la concatenzione tradizionale
  • Quando voglio concatenare più di 5 stringhe conviene StringBuilder
  • Quando voglio concatenare una stringa molto grande formata da varie frasi conviene utilizzare o il carattere @ prima della stringa o il + inline.
  • Quando utilizzi lo StringBuilder indica la capacità iniziale il più vicino possibile alla dimensione finale della stringa.

Approfondimento

Per approfondire le stringhe in C# rimando al mio articolo Le stringhe in C#. Per imparare tutti i trucchi del C# rimando al libro Programmare con C# 10. Guida completa di Antonio Pelleriti.

Share on facebook
Share on twitter
Share on linkedin
Share on telegram

Indice

Sponsor

Share

Share on facebook
Share on twitter
Share on linkedin
Share on telegram

Ultimi articoli

Ultimi aggiornamenti

Iscriviti alla newsletter settimanale

Nessuno spam, solo articoli interessanti ;)

Focus

Post correlati

stack heap

Stack e Heap

Per ogni applicazione eseguita sul sistema operativo, quest’ultimo assegna una quantità di RAM nella quale si trovano due zone distinte: gli stack e lo heap.

La sincronizzazione di thread in C#

La sincronizzazione dei thread è l’esecuzione simultanea di due o più thread che condividono risorse critiche. I thread devono essere sincronizzati per evitare conflitti. Vi sono

Pattern State

Introduzione Il pattern state consente ad un oggetto di cambiare il proprio comportamento a run-time in funzione dello stato in cui si trova. Esso è un

Pattern Singleton

Il pattern singleton è uno dei pattern creazionali più usati che ha lo scopo di garantire che di una determinata classe venga creata una e

Codice Pragmatico

Contatti

Per informazioni, dubbi o consulenze non esitate a contattarmi.

Lascia un messaggio

Ricevi le ultime news

Iscrivi alla newsletter

Solo articoli interessanti, promesso ;)