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

у меня естьList путей файлов, хранящихся на моем компьютере. Моя цель - сначала отфильтровать файлы с одинаковыми именами, а затем отфильтровать файлы одинакового размера.

Для этого я сделал два класса, реализующихIEqualityComparerи реализованоEquals а такжеGetHashCode методы.

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

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

public class CustomTextComparer : IEqualityComparer
{
    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
{
    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)

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