A halmaz egyedi értékek gyűjteménye. A halmaz .NET-beli alapértelmezett megvalósítása a HashSet<T>.
A HashSet osztály az egyes elemek GetHashCode() metódusát használja.
Alapértelmezés szerint a referencia típusok GetHashCode() megvalósítása a memóriabeli helyük hash-kódját adja vissza. Ez azt jelenti, hogy a különböző referencia típusú objektumok hash-kódja is különböző lesz (ez az úgynevezett referencia szerinti egyenlőség). Az értéktípusok alapértelmezés szerint a mezőik/tulajdonságaik hash-kódját adják vissza. Ez azt jelenti, hogy a különböző értéktípusú objektumok, amelyeknek ugyanazok a mező-/tulajdonságértékeik, ugyanazzal a hash-kóddal rendelkeznek majd (ez az úgynevezett strukturális egyenlőség).
A saját osztályaidon felülírhatod a GetHashCode() megvalósítását, amivel elérheted, hogy egy referencia típus strukturális egyenlőséggel rendelkezzen.