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