public override int GetHashCode() { unchecked { int result = 7411; result = (result * 733) ^ Plate1.GetHashCode(); result = (result * 733) ^ Plate2.GetHashCode(); foreach (string s in Rotors) { result = (result * 733) ^ s.GetHashCode(); } foreach (string s in Notches) { result = (result * 733) ^ s.GetHashCode(); } foreach (string s in Moves) { result = (result * 733) ^ s.GetHashCode(); } return(result); } }