在List中查找重复项

时间:2010-09-03 20:11:47

标签: c# lambda

我有以下代码:

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),但这些方法都没有被调用。

1 个答案:

答案 0 :(得分:4)

您是否正确实施了GetHashCode,以匹配您的Equals方法?它不会使用CompareTo(用于排序),但使用GetHashCodeEquals

如果您认为自己已经这样做了,请发布EqualsGetHashCode的代码。