Como usar o IEqualityComparer

Tenho alguns sinos no meu banco de dados com o mesmo número. Eu quero obter todos eles sem duplicação. Então, crio uma classe de comparação para fazer esse trabalho, mas a execução da função atrasa muito a função sem distinção, de 0,6 segundos a 3,2 segundos!

Estou fazendo certo ou preciso usar outro método?

       reg.AddRange((from a in this.dataContext.reglements
                     join b in this.dataContext.Clients on a.Id_client equals b.Id
                     where a.date_v <= datefin && a.date_v >= datedeb
                     where a.Id_client == b.Id
                     orderby a.date_v descending 
                     select new Class_reglement
                     {
                         nom = b.Nom,
                         code = b.code,
                         Numf = a.Numf,
                     }).AsEnumerable().Distinct(new Compare()).ToList());


    class Compare : IEqualityComparer<Class_reglement>
    {
        public bool Equals(Class_reglement x, Class_reglement y)
        {
            if (x.Numf == y.Numf)
            {
                return true;
            }
            else { return false; }
        }
        public int GetHashCode(Class_reglement codeh)
        {
            return 0;
        }

    }

questionAnswers(6)

yourAnswerToTheQuestion