public override bool Equals(object obj) { if (obj is Field field) { return (Name.Equals(field.Name) && ( Arguments == null && field.Arguments == null || Arguments != null && field.Arguments != null && Arguments.SequenceEqual(field.Arguments) ) && ( Directives == null && field.Directives == null || Directives != null && field.Directives != null && Directives.SequenceEqual(field.Directives) ) && ( SelectionSet == null && field.SelectionSet == null || SelectionSet != null && field.SelectionSet != null && SelectionSet.SequenceEqual(field.SelectionSet) )); } return(base.Equals(obj)); }