public override int GetHashCode() { int hashcode = 0; for (int i = 0; i < this.NameHierarchy.Count; i++) { hashcode += NameHierarchy[i].Name.GetHashCode(); hashcode += NameHierarchy[i].PrimitiveType.PrimitiveType.GetHashCode(); } return hashcode; }