IEqualityComparer работает не так, как задумано

у меня естьList путей файлов, хранящихся на моем компьютере. Моя цель - сначала отфильтровать файлы с одинаковыми именами, а затем отфильтровать файлы одинакового размера.
Для этого я сделал два класса, реализующихIEqualityComparer<string>и реализованоEquals а такжеGetHashCode методы.

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

Код для обоих классов приведен ниже:

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

Но код не работает.

Он не генерирует никаких исключений и не содержит ошибок компилятора, но проблема в том, что код не работает (не исключая дубликаты файлов).

Итак, как я могу исправить эту проблему? Могу ли я что-нибудь сделать, чтобы код работал правильно?

Ответы на вопрос(3)

Ваш ответ на вопрос