Maison >développement back-end >C++ >Comment LINQ peut-il concaténer efficacement des chaînes ?

Comment LINQ peut-il concaténer efficacement des chaînes ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-04 05:53:40560parcourir

How Can LINQ Efficiently Concatenate Strings?

LINQ pour concaténer des chaînes

Dans le code plus ancien, les chaînes étaient souvent concaténées à l'aide d'un StringBuilder dans une boucle. Cette méthode, bien que fonctionnelle, peut être inefficace et verbeuse.

LINQ offre une alternative plus concise et efficace grâce à des requêtes globales. Pour concaténer des chaînes à l'aide de LINQ, procédez comme suit :

Requêtes agrégées

Les requêtes agrégées sont utilisées pour réduire une collection de valeurs en une seule valeur scalaire. Dans ce cas, les chaînes seront réduites à une seule chaîne concaténée.

string[] words = { "one", "two", "three" };
var result = words.Aggregate(
    "", // Start with an empty string to handle empty lists.
    (current, next) => current + ", " + next);

Répartition

  • Agrégation : Démarre la requête en spécifiant une valeur initiale et une fonction d'agrégation.
  • (actuel, suivant) => ... : Définit la fonction d'agrégation qui combine chaque chaîne avec un délimiteur dans la chaîne actuelle.
  • current ", " next : Concatène le délimiteur et la chaîne suivante à la chaîne actuelle.

Résultat

L'exécution de cette requête génère :

one, two, three

Utilisation alternative StringBuilder

Bien que les requêtes agrégées soient une fonctionnalité LINQ polyvalente, String.Join offre une option plus performante pour concaténer un grand nombre de chaînes :

string result = String.Join(", ", words);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn