"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment utiliser la méthode agrégée de Linq pour une concaténation de chaîne efficace?

Comment utiliser la méthode agrégée de Linq pour une concaténation de chaîne efficace?

Publié le 2025-02-06
Parcourir:460

How Can LINQ's Aggregate Method Be Used for Efficient String Concatenation?

Concaténation des chaînes avec linq

La méthode traditionnelle de concaténation des chaînes implique d'utiliser un stringbuilder et d'apprendre chaque chaîne dans une boucle. Cependant, pour une approche plus efficace, Linq propose des requêtes agrégées.

Une requête globale est une fonction qui prend une collection de valeurs et renvoie une valeur scalaire. En utilisant la notation à points, vous pouvez appeler une requête globale sur un objet ienumerable.

pour concaténer les chaînes avec linq, vous pouvez utiliser la méthode agrégée comme suit:

string[] words = { "one", "two", "three" };
string res = words.Aggregate(
    "", // Start with an empty string for empty list handling
    (current, next) => current   ", "   next);

Ce code génère la sortie suivante:

, one, two, three

Il est important de noter que Les requêtes agrégées sont exécutées immédiatement. Pour des performances optimales avec de grandes séquences, envisagez d'utiliser String.join à la place.

Alternativement, si vous souhaitez utiliser Aggregate, vous pouvez tirer parti d'un StringBuilder pour améliorer les performances:

var res = words.Aggregate(
    new StringBuilder(), 
    (current, next) => current.Append(current.Length == 0? "" : ", ").Append(next));
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3