Liste de chaînes à une chaîne

Disons que vous avez un:

List los = new List(); 

Dans ce monde fonctionnel fou, nous vivons ces jours-ci, dont l’un serait le mieux pour créer une chaîne en concaténant ces éléments:

 Ssortingng.Join(Ssortingng.Empty, los.ToArray()); SsortingngBuilder builder = new SsortingngBuilder(); los.ForEach(s => builder.Append(s)); ssortingng disp = los.Aggregate((a, b) => a + b); 

ou Plain old SsortingngBuilder foreach

OU y a-t-il un meilleur moyen?

J’irais avec l’option A:

 Ssortingng.Join(Ssortingng.Empty, los.ToArray()); 

Mon raisonnement est que la méthode Join a été écrite à cet effet. En fait, si vous regardez Reflector, vous verrez qu’un code non sécurisé a été utilisé pour l’optimiser. Les deux autres fonctionnent aussi, mais je pense que la fonction Join a été écrite à cet effet, et je suppose que c’est la plus efficace. Je pourrais toutefois avoir tord…

Comme pour @Nuri YILMAZ sans .ToArray() , mais ceci est .NET 4+:

 Ssortingng.Join(Ssortingng.Empty, los); 
 ssortingng.Concat(los.ToArray()); 

Si vous voulez juste concaténer les chaînes, utilisez ssortingng.Concat () au lieu de ssortingng.Join ().

Si vous utilisez .net 4.0, vous pouvez utiliser une méthode de sorting:

 Ssortingng.Join(Ssortingng.Empty, los); 

Ssortingng.Join () est implémenté assez rapidement, et comme vous avez déjà une collection de chaînes en question, c’est probablement le meilleur choix. Surtout, il crie “je rejoins une liste de cordes!” Toujours sympa.

 los.Aggregate((current, next) => current + "," + next); 

Mon vote est ssortingng.Join

Pas besoin de créer des évaluations lambda et des fonctions temporaires, moins d’appels de fonctions, moins de poussées et de sauts de stack.