DotNetToscana
User Group Toscano su .NET

Concatenare le stringhe con Linq To Object

Article
Comments (0)
History (3)

Concatenare le stringhe con Linq To Object

Autore: Matteo Baglini

Grazie al metodo Aggregate fornito da Linq To Object possiamo effettuare la concatenazione di stringhe con una sintassi completamente dichiarativa.

private static void DemoNoStringBuilder()
{
    var words = new[] { "one", "two", "three" };
    var res = words.Aggregate((current, next) => current + ", "+ next);
    Console.WriteLine(res);
}

Questo codice, dato che utilizza l'operatore "+" per effettuare la concatenazione, non è scalabile e soffre di gravi prpblemi di performance se utilizzato con molte stringhe. In scenari del genere è fortemente consigliato l'uso della classe StringBuilder. A questo punto la domanda sorge spontanea, possiamo sruttare l'espressività di Aggregate e la potenza si StringBuilder? Ma certo!!

private static void DemoStringBuilder()
{
    var words = new[] { "one", "two", "three" };
    var res = words.Aggregate(new StringBuilder(), (sb, next) => sb.Append(sb.Length > 0 ? ", " + next : next)).ToString();
    Console.WriteLine(res);
}

Recent Comments

No comments exist yet for this page.
View More
Powered by Community Server (Commercial Edition), by Telligent Systems