我有一个实现 IEqualityComparer 并覆盖以下方法的 MyItems 类:
public bool Equals(MyItems item1, MyItems item2)
{
return (item1.ID == item2.ID && item1.itemName.Equals(item2));
}
public int GetHashCode(MyItems item)
{
return item.ID.GetHashCode() ^ item.itemName.GetHashCode();
}
首先,为什么需要GetHashCode
?我理解重写 Equals
方法,但是,GetHashCode
的必要性让我难以理解。
其次,这似乎不起作用。我在这里做错了什么吗?我不理解 GetHashCode 的地方,
可能是我绊倒的地方。
最佳答案
要回答您的第一个问题,只需查看 here了解更多信息。
回答你的第二个问题:你忘了 item2 应该是 item2.itemName
return (item1.ID == item2.ID && item1.itemName.Equals(item2.itemName));
关于c# - 我的 List<T>.Distinct() 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14130509/