IEqualityComparer funktioniert nicht wie vorgesehen

Ich habe einList von Pfaden von Dateien auf meinem Computer gespeichert. Mein Ziel ist es, zuerst die Dateien mit dem gleichen Namen und dann die Dateien mit der gleichen Größe herauszufiltern.
Dazu habe ich zwei Klassen implementiertIEqualityComparer<string>und implementiertEquals undGetHashCode Methoden.

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

Der Code für beide Klassen ist unten angegeben:

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();
    }
}

Aber der Code funktioniert nicht.

Es werden keine Ausnahmen ausgelöst und es gibt keinen Compilerfehler, aber das Problem ist, dass der Code nicht funktioniert (schließt doppelte Dateien nicht aus).

Wie kann ich dieses Problem beheben? Kann ich irgendetwas tun, damit der Code richtig funktioniert?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage