Comptage des doublons par propriété à l'aide de LINQ
Dans ce scénario, vous disposez d'une liste d'objets avec une propriété ID. L'objectif est de compter et de regrouper les objets en fonction de leurs identifiants et d'afficher les résultats de manière triée, avec l'objet avec le nombre le plus élevé en haut.
Regroupement par ID
LINQ propose l'opération « grouper par » pour regrouper les objets en fonction d'une propriété spécifiée. Dans votre cas, vous souhaitez regrouper par la propriété ID. Voici comment y parvenir :
var grouped = items.GroupBy(item => item.ID);
Après le regroupement, vous aurez une collection de groupes, où chaque groupe représente des objets avec le même ID.
Compter les éléments dans Groupes
Avec les groupes créés, vous pouvez utiliser la méthode 'Count()' pour compter le nombre d'objets dans chaque groupe. Le résultat est une collection de paires clé-valeur, où la clé est l'ID et la valeur est le nombre.
var counted = grouped.Select(group => new { ID = group.Key, Count = group.Count() });
Tri par nombre
Enfin , pour trier les résultats par ordre décroissant par nombre, vous pouvez utiliser la commande 'OrderByDescending()' méthode.
var sorted = counted.OrderByDescending(pair => pair.Count);
Combinaison des résultats dans une nouvelle liste
Pour afficher les résultats dans le format souhaité, vous devez créer une nouvelle liste d'objets contenant le ID, compte et nom du jeu. Vous pouvez utiliser une combinaison de propriétés et de projection pour y parvenir :
var results = sorted.Select(pair => new { ID = pair.ID, Count = pair.Count, GameName = items.First(item => item.ID == pair.ID).GameName });
Cela vous donnera une liste d'objets avec les propriétés requises.
En suivant ces étapes, vous pouvez compter les doublons en fonction de la propriété ID et triez les résultats par nombre à l'aide de LINQ.
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!