Maison > développement back-end > C++ > Comment puis-je comparer efficacement deux listes massives pour détecter les différences en C# ?

Comment puis-je comparer efficacement deux listes massives pour détecter les différences en C# ?

Mary-Kate Olsen
Libérer: 2025-01-14 21:16:46
original
742 Les gens l'ont consulté

How Can I Efficiently Compare Two Massive Lists for Differences in C#?

Stratégies pour comparer efficacement les différences dans les grandes listes

Comparer les différences peut nécessiter beaucoup de ressources lorsque l'on travaille avec de grandes listes. Bien que la méthode Contains() de LINQ soit une pratique courante, elle est inefficace pour les ensembles de données volumineux. Une meilleure solution consiste à utiliser la méthode Except().

Utilisez la méthode Except()

La méthode

Except() fonctionne sur IEnumerable et trouve les éléments présents dans une liste mais pas dans une autre. En appliquant Except() aux deux listes, nous obtenons deux nouvelles listes :

  • firstNotSecond : Contient des éléments qui sont dans la première liste mais qui manquent dans la deuxième liste.
  • secondNotFirst : Contient des éléments de la deuxième liste qui manquent dans la première liste.

Cette méthode est beaucoup plus rapide que d'utiliser le Contains() chèque. Par exemple :

<code class="language-csharp">var firstNotSecond = list1.Except(list2).ToList();
var secondNotFirst = list2.Except(list1).ToList();</code>
Copier après la connexion

Résultats fusionnés

Si vous le souhaitez, les résultats peuvent être combinés en une seule déclaration :

<code class="language-csharp">return !firstNotSecond.Any() && !secondNotFirst.Any();</code>
Copier après la connexion

Cette instruction est évaluée à true si les deux listes d'entrée contiennent exactement les mêmes éléments, et false sinon.

Notes sur les éléments répétitifs

Il convient de noter que la méthode Except() gère les éléments répétés différemment de la méthode Contains(). Dans le code d'origine, les éléments en double de la première liste qui n'étaient pas présents dans la deuxième liste étaient signalés plusieurs fois. Cependant, Except() ne signale chaque élément répété qu'une seule fois. Cette différence doit être prise en compte lors de l'utilisation de cette solution.

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!

source:php.cn
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