如何确保 List.Contains(T) 适用于我的自定义类?

发布于 2024-07-13 20:52:25 字数 338 浏览 3 评论 0原文

我使用 .net 2.0 (C#)

我有一个 Person 类,并且我 pupulate List< 人> p 来自数据库。

我知道我的列表有重复项,但是当我尝试 删除重复项它们不会被删除。

我的 Person 类是否需要实现 List< 的任何接口 T>.Contains(T) 能否正常工作?

还有其他想法吗?

谢谢。

I use .net 2.0 (C#)

I have a Person class, and i pupulate List< Person> p from the database.

i know for a fact that my list has duplicates, but when i try to remove the duplicates they don't get removed.

Does my Person class need to implement any interfaces for List< T>.Contains(T) to work properly?

Any other ideas?

Thank you.

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

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

发布评论

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

评论(5

不顾 2024-07-20 20:52:25

您的 Person 类应实现 IEquatable

Your Person class should implement IEquatable

遗忘曾经 2024-07-20 20:52:25

您应该重写 EqualsGetHashCode 方法。

You should override Equals and GetHashCode method.

め可乐爱微笑 2024-07-20 20:52:25

您引用的示例不是从列表中删除重复项的解决方案,它是一个接受列表并生成一个排除重复项的迭代器的函数。 如果您需要一次性删除整个列表的重复数据,则需要获取从函数返回的 IEnumerable 并将其传递到新的 List 中。

The example you reference is not a solution for removing dupes from a list, it is a function that takes a list and yields an iterator that will exclude duplicates. If you need to dedupe the entire list in one go you would need to take the IEnumerable<T> returned from the function and pass it into a new List<T>.

等你爱我 2024-07-20 20:52:25

您需要在类中重载 Object.Equals(Object obj) 。

You need to overload Object.Equals(Object obj) in your class.

檐上三寸雪 2024-07-20 20:52:25

文档说“此方法使用默认的相等比较器来确定相等性<代码>EqualityComparer(T).Default”。

The docs say "This method determines equality using the default equality comparer EqualityComparer(T).Default".

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