在列表中查找重复项

发布于 2024-09-16 22:42:34 字数 454 浏览 9 评论 0原文

我有以下代码:

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

I have the following code:

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 is always empty, even if I intentionally insert duplicates into the list. What should I add to MyType definition to make it work ? I implemented Equals(object obj) and CompareTo(object obj) for MyType, but none of these methods gets called.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一影成城 2024-09-23 22:42:34

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

如果您认为您已经完成了此操作,请发布 EqualsGetHashCode 的代码。

Have you implemented GetHashCode correctly, to match your Equals method? It won't be using CompareTo (that's for ordering) but will use GetHashCode and Equals.

If you believe you've done that already, please post the code for Equals and GetHashCode.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文