Comment utiliser Distinct() avec une expression lambda pour filtrer les doublons par propriété d'objet ?
Bonjour à tous ! Je suis débutant en C# et j'ai rencontré un problème en travaillant avec des collections. J'ai une liste d'objets de la classe Person :
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
Je remplis la liste avec des données, et elle contient des doublons sur le champ Name. J'ai besoin d'obtenir uniquement les noms uniques, tout en conservant les objets entiers (ou au moins en sélectionnant un des doublons).
Je sais qu'il existe la méthode Distinct(), mais elle ne fonctionne que pour les types primitifs ou si on redéfinit Equals et GetHashCode dans la classe. Or, je ne veux pas modifier la classe Person — elle est utilisée ailleurs, et la comparaison sur tous les champs ne me convient pas.
J'ai vu qu'il existe une surcharge Distinct(IEqualityComparer) dans LINQ, mais écrire une classe de comparateur séparée pour chaque cas me semble trop lourd. Peut-on l
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
JavaScript pour l'apprentissage automatique : outils pratiques et exemples de code
Déploiement de TypeScript sur Kubernetes : guide de base pour débutants
JavaBean expliqué simplement : définition et utilité en 2024
Java et PostgreSQL : guide complet pour projets réels