Maison > développement back-end > C++ > Comment puis-je fusionner efficacement deux listes, supprimer les doublons et maintenir l'ordre ?

Comment puis-je fusionner efficacement deux listes, supprimer les doublons et maintenir l'ordre ?

Mary-Kate Olsen
Libérer: 2024-12-27 05:54:13
original
933 Les gens l'ont consulté

How Can I Efficiently Merge Two Lists, Removing Duplicates, and Maintaining Order?

Fusionner des listes pour un résultat concaténé

Dans ce scénario, vous disposez de deux listes de chaînes (ou de tout type arbitraire) et souhaitez les combiner rapidement tout en conservant l'original commande. De plus, vous souhaitez éliminer toutes les entrées en double dans la liste fusionnée. Malgré vos recherches sur ce sujet, vous n'avez pas identifié de solution simple et préférez éviter d'implémenter des interfaces complexes.

Une approche efficace consiste à utiliser la méthode AddRange :

List<string> a = new List<string>();
List<string> b = new List<string>();

a.AddRange(b);
Copier après la connexion

Cette approche préserve l'ordre des éléments dans les deux listes, transférant le contenu de b dans a. Cependant, elle ne supprime pas les doublons.

Une option alternative qui résout le problème de duplication est la méthode Union :

var newList = a.Except(b).ToList();
Copier après la connexion

Cette ligne combine les éléments de a et b, en excluant les doublons. Le résultat est stocké dans une nouvelle liste nommée newList.

Enfin, si vous devez conserver les listes d'origine, vous pouvez utiliser la méthode Concat :

var newList = a.Concat(b);
Copier après la connexion

Cette opération produit un objet IEnumerable . Il parcourt les deux listes, produisant séquentiellement leurs éléments dans l'ordre dans lequel ils apparaissent. Si vous avez besoin d'une liste comme sortie, vous pouvez convertir le IEnumerable en liste à l'aide de la méthode ToList.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal