J'ai une instruction Linq Distinct() qui utilise mon propre comparateur personnalisé, comme ceci :
class MyComparer<T> : IEqualityComparer<T> where T : MyType
{
public bool Equals(T x, T y)
{
return x.Id.Equals(y.Id);
}
public int GetHashCode(T obj)
{
return obj.Id.GetHashCode();
}
}
...
var distincts = bundle.GetAllThings.Distinct(new MyComparer<MySubType>() );
Tout cela est parfait et fonctionne comme je le souhaite. Par curiosité, dois-je définir mon propre Comparer, ou puis-je le remplacer par un délégué ? Je pensais pouvoir faire quelque chose comme ceci :
var distincts = bundle.GetAllThings.Distinct( (a,b) => a.Id == b.Id );
Mais ça ne compile pas. Existe-t-il une astuce ?