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
Mary-Kate Olsenoriginal
2025-01-14 21:16:46800parcourir

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>

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>

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!

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