我使用.net 2.0(C#)
我有一个Person类,我傀儡List<人> p来自数据库。
我知道我的列表有重复的事实,但当我尝试remove the duplicates时,它们不会被删除。
我的Person类是否需要为List<实现任何接口? T>。包含(T)正常工作?
还有其他想法吗?
谢谢。
答案 0 :(得分:8)
您的Person类应该实现IEquatable
答案 1 :(得分:4)
您应该覆盖等于和 GetHashCode 方法。
答案 2 :(得分:1)
您引用的示例不是从列表中删除dupes的解决方案,它是一个获取列表并生成将排除重复项的迭代器的函数。如果您需要一次性重复删除整个列表,则需要从函数返回IEnumerable<T>
并将其传递给新的List<T>
。
答案 3 :(得分:1)
您需要在类中重载Object.Equals(Object obj)。
答案 4 :(得分:0)
docs说“此方法使用默认的相等比较器EqualityComparer(T).Default
确定相等性。”