Clone or download
twcclegg Merge pull request #82 from twcclegg/dedup
dedup text geocoding data
Latest commit 2257544 Nov 15, 2018

Build status codecov



Clone of original C# port here.

All I've ever done is pull updated metadata from Google's project.

From the original WIKI

Conversion Notes

C# port of Google's libphonenumber library.

The code was rewritten from the Java source mostly unchanged, please refer to the original documentation for sample code and API documentation.

The original Apache License 2.0 was preserved.

See this for details about the port.


  var phoneNumberUtil = PhoneNumbers.PhoneNumberUtil.GetInstance();
  var e164PhoneNumber = "+44 117 496 0123";
  var nationalPhoneNumber = "2024561111";
  var smsShortNumber = "83835";
  var phoneNumber = phoneNumberUtil.Parse(e164PhoneNumber, null);
  phoneNumber = phoneNumberUtil.Parse(nationalPhoneNumber, "US");
  phoneNumber = phoneNumberUtil.Parse(smsShortNumber, "US");


  • Parsing/formatting/validating phone numbers for all countries/regions of the world.
  • GetNumberType - gets the type of the number based on the number itself; able to distinguish Fixed-line, Mobile, Toll-free, Premium Rate, Shared Cost, VoIP and Personal Numbers (whenever feasible).
  • IsNumberMatch - gets a confidence level on whether two numbers could be the same.
  • GetExampleNumber/GetExampleNumberByType - provides valid example numbers for 218 countries/regions, with the option of specifying which type of example phone number is needed.
  • IsPossibleNumber - quickly guessing whether a number is a possible phonenumber by using only the length information, much faster than a full validation.
  • AsYouTypeFormatter - formats phone numbers on-the-fly when users enter each digit.
  • FindNumbers - finds numbers in text input

HowTo Update

  • checkout the latest release from
  • synchronize all contained folders with this repository
  • copy PhoneNumberMetaDataForTesting.xml PhoneNumberMetaData.xml PhoneNumberAlternateFormats.xml from /resources to /csharp/PhoneNumbers
  • run /csharp/lib/makeprotobuf.bat if phonenumber.proto or phonemetadata.proto have changes and port required code changes as needed
  • modify AssemblyVersion and AssemblyFileVersion in /csharp/PhoneNumbers/Properties/AssemblyInfo.cs
  • make /csharp/PhoneNumbers.sln


  • port read/write source xml data to binary for better performance and smaller .nupkg size (WIP)
  • update / add / port new unit tests from java source

How to unfold automatic generated files

  • Install Jetbrains - Resharper for Visual Studio
  • File by file, right click and "Cleanup code"
  • Check the unfolded file

Available on NuGet as package libphonenumber-csharp.