相关疑难解决方法(0)

IEqualityComparer未按预期工作

List我的计算机上存有一些文件路径.我的目的是首先筛选出具有相同名称的文件,然后筛选出具有相同大小的文件.
要做到这一点,我已经做了两个班实施IEqualityComparer<string>,并实现EqualsGetHashCode方法.

var query = FilesList.Distinct(new CustomTextComparer())
                     .Distinct(new CustomSizeComparer()); 
Run Code Online (Sandbox Code Playgroud)

这两个类的代码如下: -

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;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# linq iequalitycomparer

10
推荐指数
3
解决办法
3403
查看次数

标签 统计

.net ×1

c# ×1

iequalitycomparer ×1

linq ×1