Есть способ, которым вы можете делать то, что пытаетесь сделать.
Допустим, у вас есть Enum, который вы определили так
public enum MatchedOn { None, Name, Email }
Затем извлеките реализацию вашего метода Equals в другой метод, чтобы вы вызывали его из метода Equals. В этом новом методе присвойте enum значение Name, если имена равны, или Email, если адреса электронной почты равны, или None, если они не совпадают.
Затем в вашей реализации GetHashCode вы также можете вызвать этот новый метод и затем вернуть хешированный код на основе имени или адреса электронной почты или их комбинации.
Надеюсь, это имеет смысл.