集合是一组唯一的值。.NET 中默认的集合实现是 HashSet<T>。
HashSet类会使用每个元素的 GetHashCode()方法。
默认情况下,引用类型的GetHashCode()实现会返回其内存位置的哈希值。这意味着不同的引用类型对象会得到不同的哈希码(这称为引用相等性)。值类型默认返回其字段/属性的哈希值。这意味着字段/属性值相同的不同值类型对象会得到相同的哈希码(这称为结构相等性)。
你可以在自己的类中重写GetHashCode()实现,借此让引用类型具有结构相等性。