IEqualityComparer nie działa zgodnie z przeznaczeniem

mamList ścieżek plików przechowywanych na moim komputerze. Moim celem jest najpierw odfiltrować pliki o tej samej nazwie, a następnie odfiltrować pliki o tym samym rozmiarze.
Aby to zrobić, wprowadziłem dwie klasy implementująceIEqualityComparer<string>i wdrożonyEquals iGetHashCode metody

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

Kod obu klas podano poniżej:

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

Ale kod nie działa.

Nie zgłasza żadnych wyjątków ani nie występuje błąd kompilatora, ale problem polega na tym, że kod nie działa (nie wyklucza duplikatów plików).

Jak mogę rozwiązać ten problem? Czy mogę coś zrobić, aby kod działał poprawnie.

questionAnswers(3)

yourAnswerToTheQuestion