Je veux obtenir les valeurs distinctes dans une liste, mais pas par le standard de comparaison d'égalité.
Ce que je veux faire, c'est quelque chose comme ceci:
return myList.Distinct( (x, y) => x.Url == y.Url );
Je ne peux pas, il n'y a aucune méthode d'extension dans Linq qui va le faire, un qui prend un IEqualityComparer
.
Je peux pirater autour d'elle avec ceci:
return myList.GroupBy( x => x.Url ).Select( g => g.First() );
Mais qui semble en désordre. Il n'a pas également tout à fait faire la même chose - je ne peux l'utiliser ici parce que j'ai une clé unique.
Je pourrais aussi ajouter le mien:
public static IEnumerable<T> Distinct<T>(
this IEnumerable<T> input, Func<T,T,bool> compare )
{
//write my own here
}
Mais il semble que plutôt que d'écrire quelque chose qui devrait être là en premier lieu.
Quelqu'un sait pourquoi cette méthode n'est pas là?
Ai-je raté quelque chose?