public LocalityNode(string name, AdminDistrictNode parent)
 {
     this.Children  = new Dictionary <String, LocationNode>(Cmp);
     this.Parent    = parent;
     this.Key       = name;
     this.Formatted = Helpers.FormatAddress(null, null, CityName, StateNode?.Abbreviation ?? StateNode?.Key, null, CountryName);
     unchecked { _hashcode = (typeof(LocalityNode).GetHashCode() * 397) ^ Cmp.GetHashCode(Formatted); }
 }
 public StreetAddressNode(string name, string addressline, LocationNode parent)
 {
     this.Parent    = parent;
     this.Key       = addressline;
     this.Name      = name;
     this.Formatted = Helpers.FormatAddress(Name, Address, CityName, StateNode?.Abbreviation ?? StateNode?.Key, Key, CountryName);
     unchecked { _hashcode = (typeof(StreetAddressNode).GetHashCode() * 397) ^ Cmp.GetHashCode(Formatted); }
 }
 public PostalCodeNode(string name, LocalityNode parent)
 {
     this.Parent    = parent;
     this.Key       = name;
     this.Formatted = Helpers.FormatAddress(null, null, CityName, StateNode?.Abbreviation ?? StateNode?.Key, Key, CountryName);
     unchecked { _hashcode = (typeof(PostalCodeNode).GetHashCode() * 397) ^ Cmp.GetHashCode(Formatted); }
 }
 public AdminDistrictNode(string fullName, string[] variations, CountryRegionNode parent) : base(fullName, variations)
 {
     this.Parent = parent;
     Formatted   = Helpers.FormatAddress(null, null, null, StateNode?.Abbreviation ?? StateNode?.Key, null, CountryName);
     unchecked { _hashcode = (typeof(AdminDistrictNode).GetHashCode() * 397) ^ Cmp.GetHashCode(Formatted); }
 }
 public CountryRegionNode(string fullName, string[] variations) : base(fullName, variations)
 {
     Formatted = fullName;
     unchecked { _hashcode = (typeof(CountryRegionNode).GetHashCode() * 397) ^ Cmp.GetHashCode(fullName); }
 }