2012-06-07 17 views

cevap

13

Distinct yöntem HashSet<> üzerinde değil, ama HashSet<> tarafından uygulanan IEnumerable<>.

Uzantı yöntemleri, bazı türlerden "atlanamaz". Bir türe eklendiğinde, bu türlerin tümü ve türetilmiş olanlar uzantı yöntemini alır.

Sadece göstermek için, object genişletilmiş, ilgili ad alanı eklediyseniz, her şeyi çöp dökeceksin. Yani ekleyerek gitmez:

namespace System 
{ 
    public static class ObjectExtensions 
    { 
     public static void Garbage(this object foo) 
     { 
     } 
    } 
} 
+0

netleştirmek için 'Distinct'' HashSet 'uygulamaya olur' IEnumerable 'üzerinde bir uzantısı yöntemi vardır. – bluevector

+0

@jonnyGold Evet Fark ettim, yorumumdan önce cevabımı yeni düzenledim. Yine de açıklama için teşekkürler. –

+1

Daha da açık olmak gerekirse, 'Distinct', 'IEnumerable <> 'uzantısını genişleten ve' System.Linq.Enumerable 'statik sınıfında bulunan bir uzantı yöntemidir. –

İlgili konular