IEqualityComparer no funciona como estaba previsto

tengo unList de rutas de archivos almacenados en mi computadora. Mi objetivo es primero filtrar los archivos que tienen el mismo nombre y luego filtrar los que tienen el mismo tamaño.
Para ello, he realizado dos clases de implementación.IEqualityComparer<string>, e implementadoEquals yGetHashCode metodos

var query = FilesList.Distinct(new CustomTextComparer())
                     .Distinct(new CustomSizeComparer()); 

El código para ambas clases se da a continuación:

public class CustomTextComparer : IEqualityComparer<string>
{
    public bool Equals(string x, string y)
    {
        if (Path.GetFileName(x) == Path.GetFileName(y))
        {
            return true;
        }
        return false; 
    }
    public int GetHashCode(string obj)
    {
        return obj.GetHashCode();
    }
}
public class CustomSizeComparer : IEqualityComparer<string>
{
    public bool Equals(string x, string y)
    {
        if (new FileInfo(x).Length == new FileInfo(y).Length)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    public int GetHashCode(string obj)
    {
        return obj.GetHashCode();
    }
}

Pero el código no funciona.

No lanza ninguna excepción ni hay ningún error de compilación, pero el problema es que el código no funciona (no excluye archivos duplicados).

Entonces, ¿cómo puedo corregir este problema? ¿Hay algo que pueda hacer para que el código funcione correctamente?

Respuestas a la pregunta(3)

Su respuesta a la pregunta