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 :
-
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
-
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
-
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
-
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
-
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!