«مجموعه» کالکشنی از مقادیر یکتاست. پیادهسازی پیشفرض مجموعه در .NET، HashSet<T> است.
کلاس HashSet از متد GetHashCode() هر عنصر استفاده میکند.
بهطور پیشفرض، پیادهسازی GetHashCode() برای انواع ارجاعی، یک «هش» از محل حافظهی آن برمیگرداند. یعنی کد هش اشیای مختلف از نوع ارجاعی متفاوت خواهد بود (به این، «برابری ارجاعی» میگویند). انواع مقداری بهطور پیشفرض، هشی از فیلدها/ویژگیهای خود برمیگردانند. یعنی اشیای مختلف از نوع مقداری که مقادیر فیلد/ویژگی یکسانی دارند، کد هش یکسانی خواهند داشت (به این، «برابری ساختاری» میگویند).
میتوانید پیادهسازی GetHashCode() را در کلاسهای خودتان بازنویسی کنید و از آن استفاده کنید تا یک نوع ارجاعی برابری ساختاری داشته باشد.