2009-02-27 9 views

cevap

0

docs "Bu yöntem, EqualityComparer(T).Default varsayılan eşitlik karşılaştırması kullanılarak eşitliği belirler."

+0

ardından .Equals 'geri düşer uygulamalıdır()' ve '.GetHashCode()'. Detay için –

1

Başvuruda bulunduğunuz örnek, bir listeden kopyaları kaldırmak için bir çözüm değildir; bir liste alan ve çiftleri hariç tutacak bir yineleyici veren bir işlevdir. Tüm listeyi tek seferde kesmeniz gerekiyorsa, işlevden dönen IEnumerable<T> ürününü almanız ve yeni bir List<T> ürününe aktarmanız gerekir.

+0

thanx, bu kodu yeni bir listeyi doldurmak için referans olarak kullandım. Yeni bir listeyi denetleyerek .Contains() her zaman yinelemede –

1

Sınıfınızda Object.Equals (Object obj) yüklemelisiniz.

4

Sen ve GetHashCode yöntem Eşittir geçersiz kılar.

+1

Bu DOES çalışırken, IEquatable uygulamak daha iyidir, çünkü güvenli yazın, Eşittir değil. – BFree

+0

@BFree: iyi puan –

+0

Kabul ediyor. Ama bence GetHashCode yönteminizi hala geçersiz kılmalısınız. Bu size daha iyi bir performans sunar. – redjackwong