public override int GetHashCode() { var result = Name.GetHashCode(); if (Alias != null) { result ^= Alias.GetHashCode(); } if (Arguments != null) { result = Arguments.Aggregate(result, (x, y) => x ^ y.GetHashCode()); } if (Directives != null) { result = Directives.Aggregate(result, (x, y) => x ^ y.GetHashCode()); } if (SelectionSet != null) { result = SelectionSet.Aggregate(result, (x, y) => x ^ y.GetHashCode()); } return(result); }