簡體   English   中英

我如何確保列表 <T> .Contains(T)適用於我的自定義類?

[英]How do i make sure that List<T>.Contains(T) works with my custom class?

我使用.net 2.0(C#)

我有一個Person類,我從數據庫中傀儡List <Person> p。

我知道我的列表有重復的事實,但當我嘗試刪除重復項時,它們不會被刪除。

我的Person類是否需要實現List <T> .Contains(T)的任何接口才能正常工作?

還有其他想法嗎?

謝謝。

你的Person類應該實現IEquatable

您應該重寫EqualsGetHashCode方法。

您引用的示例不是從列表中刪除dupes的解決方案,它是一個獲取列表並生成將排除重復項的迭代器的函數。 如果您需要一次性重復刪除整個列表,則需要從函數返回的IEnumerable<T>並將其傳遞給新的List<T>

您需要在類中重載Object.Equals(Object obj)。

文檔說“這個方法使用默認的相等比較器EqualityComparer(T).Default ”來確定相等性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM