我有以下代码:
List<MyType> myList = new List<MyType>();
// ... add items to the list
var dupes = myList.GroupBy(g => g).Where(x => (x.Count() > 1))
.Select(x => new { obj = x.Key, count = x.Count() }).ToList();
dupe
始终为空,即使我故意在列表中插入重复项。我应该在MyType定义中添加什么才能使其正常工作?我为MyType实现了Equals(object obj)
和CompareTo(object obj)
,但这些方法都没有被调用。
答案 0 :(得分:4)
您是否正确实施了GetHashCode,以匹配您的Equals
方法?它不会使用CompareTo
(用于排序),但将使用GetHashCode
和Equals
。
如果您认为自己已经这样做了,请发布Equals
和GetHashCode
的代码。