更新:我可以找到重复项。 但是,我正在测试包含该字符的重复项:'*' 它找不到它们。 任何想法为什么? 我尝试的重复路径是:* .exe
我有两个数据表。每个数据表都有两列:路径和类型。 重复项基于路径。
以下是我的自定义实现:IEqualityComparer
internal class RuleComparer : IEqualityComparer<DataRow>
{
#region IEqualityComparer<string> Members
public bool Equals(DataRow x, DataRow y)
{
return (x["path"] as string).ToUpperInvariant().Equals((y["path"] as string).ToUpperInvariant());
}
public int GetHashCode(DataRow obj)
{
return obj.Field<string>("path").ToUpperInvariant().GetHashCode();
}
#endregion
}
这就是我所说的:
public IEnumerable<string> Duplicates
{
get
{
return (datatable1.AsEnumerable()
.Intersect(datatable2.AsEnumerable(), new RuleComparer())
.Select(dupe => dupe.Field<string>("path"))).ToList();
}
}
但是没有找到重复的内容。任何人都能看到我做错了什么?在通过代码调试时,调用Equals方法。
提前致谢