如何确保List .Contains(T)与我的自定义类一起使用?

我使用.net 2.0(C#)

我有一个Person类,我从数据库中傀儡List p。

我知道我的列表有重复的事实,但当我尝试删除重复项时,它们不会被删除。

我的Person类是否需要实现List .Contains(T)的任何接口才能正常工作?

还有其他想法吗?

谢谢。

您的Person类应该实现IEquatable

您应该重写EqualsGetHashCode方法。

您引用的示例不是从列表中删除dupes的解决方案,它是一个获取列表并生成将排除重复项的迭代器的函数。 如果您需要一次性重复删除整个列表,则需要从函数返回的IEnumerable并将其传递给新的List

您需要在类中重载Object.Equals(Object obj)。

文档说“此方法使用默认的相等比较器EqualityComparer(T).Default ”确定相等性。