public override int GetHashCode() { unchecked // Overflow is fine, just wrap { int hash = 23; hash = hash * 31 + this.Type.GetHashCode(); hash = hash * 31 + this.Tier.GetHashCode(); return hash; } }