代码之家  ›  专栏  ›  技术社区  ›  a1ex07

在列表中查找重复项

  •  1
  • a1ex07  · 技术社区  · 14 年前

    我有以下代码:

    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 总是空的,即使我故意在列表中插入重复项。我应该在我的类型定义中添加什么才能使其工作?我实施 Equals(object obj) CompareTo(object obj) 对于MyType,但没有调用这些方法。

    1 回复  |  直到 14 年前
        1
  •  4
  •   BlueRaja - Danny Pflughoeft    14 年前

    是否正确实现了GetHashCode,以匹配 Equals 方法?它不会用的 CompareTo (这是点菜)但是 使用 GetHashCode 等于 .

    如果你相信你已经做到了,请发布 等于 方法 .