public override bool Equals(object obj) { if (obj == null) return false; if (obj == this) return true; if (obj.GetType() != GetType()) return false; return Equals((Candidate)obj); }