Maison > développement back-end > C++ > Comment puis-je compter efficacement les doublons dans les listes d'objets à l'aide de LINQ ?

Comment puis-je compter efficacement les doublons dans les listes d'objets à l'aide de LINQ ?

Linda Hamilton
Libérer: 2024-12-29 21:34:15
original
861 Les gens l'ont consulté

How Can I Efficiently Count Duplicates in Object Lists Using LINQ?

Comptage des doublons dans les listes d'objets avec LINQ

Lorsque vous travaillez avec des listes d'objets complexes, compter les doublons peut être une exigence courante. À l'aide de LINQ (Language Integrated Query), vous pouvez regrouper efficacement des objets en fonction d'une propriété commune et récupérer le nombre de chaque doublon.

Voici un guide étape par étape sur la façon d'y parvenir :

  1. Regrouper par propriété : Utilisez l'opérateur GroupBy pour regrouper les objets selon la propriété souhaitée. Dans l'exemple fourni, nous souhaitons compter les doublons en fonction de la propriété "ID", nous pouvons donc écrire :
var groupedIDs = items.GroupBy(item => item.ID);
Copier après la connexion
  1. Compter les doublons : Pour chaque groupe créé, utilisez l'opérateur Count pour déterminer le nombre d'occurrences en double.
var duplicateCounts = groupedIDs.Select(group => new { ID = group.Key, Count = group.Count() });
Copier après la connexion
  1. Commander Résultats : Par défaut, les résultats seront regroupés dans un ordre arbitraire. Pour trier par le plus grand nombre de doublons, utilisez l'opérateur OrderByDescending :
var sortedDuplicates = duplicateCounts.OrderByDescending(x => x.Count);
Copier après la connexion
  1. Récupérer les données sélectionnées : Si vous avez besoin à la fois du nombre et de l'objet d'origine, vous pouvez utiliser une projection dans l'opérateur Select pour créer un résultat :
var result = sortedDuplicates.Select(x => new { Count = x.Count, Object = x.ID });
Copier après la connexion
  1. Lier à la source de données : Une fois que vous avez les décomptes en double, vous pouvez les lier à une source de données pour les afficher ou les traiter davantage. Dans votre cas, en utilisant ListView, cela ressemblerait à ceci :
lvRelatedGames.DataSource = result;
lvRelatedGames.DataBind();
Copier après la connexion

Considérations supplémentaires :

  • Si les objets ont des propriétés différentes au sein Pour chaque groupe en double, vous devrez peut-être utiliser un comparateur personnalisé pour vous assurer que les objets sont considérés comme des doublons en fonction de critères spécifiques.
  • Le code fourni est destiné à être un point de départ, et vous devrez peut-être l'adapter en fonction de vos besoins spécifiques et de votre structure de données.

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