Skip to content

Repository files navigation

CountryCodes

NuGet

All countries and subdivisions based on ISO 3166

Usage

List all countries and subdivisions

foreach(varcountryinCountry.GetAllCountries()){Console.WriteLine(country);// Two-letter code (e.g. "US")Console.WriteLine(country.Name);Console.WriteLine(country.TwoLetterCode);Console.WriteLine(country.ThreeLetterCode);Console.WriteLine(country.NumericCode);foreach(varsubdivisionincountry.Subdivisions){Console.WriteLine(subdivision);// Subdivision code (e.g. "US-AL" for Alabama)Console.WriteLine(subdivision.Name);Console.WriteLine(subdivision.Code);}}

Static fields

_=Country.US.Name;// "United States"_=Country.US.TwoLetterCode;// "US"_=Country.US.ThreeLetterCode;// "USA"_=Country.US.NumericCode;// 840foreach(variteminCountry.US.Subdivisions){_=item.Code;// Code for state (e.g. "US-AL")_=item.Name;// State name (e.g. "Alabama")}

Using the constructors

_=newCountry("US")==Country.US;// true_=newCountry(840)==Country.US;// true_=newCountry("US")==newCountry(840);// true_=newCountry("XX")// ArgumentException
varalabama=newSubdivision("US-AL");Console.WriteLine(alabama.Name);// "Alabama"Console.WriteLine(alabama.Code);// "US-AL"

Benchmarks

BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3593/23H2/2023Update/SunValley3)
13th Gen Intel Core i7-13700, 1 CPU, 24 logical and 16 physical cores
.NET SDK 8.0.300
[Host] : .NET 8.0.5 (8.0.524.21615), X64 RyuJIT AVX2
DefaultJob : .NET 8.0.5 (8.0.524.21615), X64 RyuJIT AVX2

MethodNMeanErrorStdDevMedianAllocated
CountryById10002,389.8790 ns10.4699 ns8.7428 ns2,387.9715 ns-
CountryByCode100081,024.7900 ns271.3211 ns253.7939 ns81,044.9463 ns-
CountryStaticFieldAccess1000208.0466 ns0.8205 ns0.7675 ns207.8247 ns-
CountryEqualsTrue10000.0005 ns0.0010 ns0.0010 ns0.0000 ns-
CountryEqualsTrueNew1000182.6032 ns0.7119 ns0.6659 ns182.7221 ns-
CountryEqualsFalse10000.0065 ns0.0050 ns0.0046 ns0.0054 ns-
CountryEqualsFalseNew1000605.2488 ns8.3654 ns7.4157 ns605.9461 ns-
CountryById1000024,135.4159 ns134.2165 ns125.5462 ns24,102.3529 ns-
CountryByCode10000804,314.0560 ns4,967.4101 ns4,646.5185 ns805,193.8477 ns-
CountryStaticFieldAccess100002,003.0091 ns12.9029 ns12.0694 ns2,003.7109 ns-
CountryEqualsTrue100000.0003 ns0.0008 ns0.0008 ns0.0000 ns-
CountryEqualsTrueNew10000183.0074 ns0.8514 ns0.7964 ns183.1840 ns-
CountryEqualsFalse100000.0018 ns0.0029 ns0.0026 ns0.0005 ns-
CountryEqualsFalseNew10000615.3867 ns10.8206 ns10.1216 ns613.0751 ns-
CountryById100000239,643.2487 ns1,062.3031 ns993.6790 ns239,393.2373 ns-
CountryByCode1000008,032,422.8125 ns49,702.5701 ns46,491.8149 ns8,029,992.1875 ns6 B
CountryStaticFieldAccess10000019,872.5524 ns72.8110 ns68.1075 ns19,859.8618 ns-
CountryEqualsTrue1000000.0031 ns0.0042 ns0.0040 ns0.0020 ns-
CountryEqualsTrueNew100000183.3448 ns0.7262 ns0.6792 ns183.3051 ns-
CountryEqualsFalse1000000.0026 ns0.0034 ns0.0032 ns0.0002 ns-
CountryEqualsFalseNew100000610.9723 ns11.9035 ns14.1703 ns610.2311 ns-
CountryById10000002,380,388.9323 ns6,039.4146 ns5,649.2722 ns2,380,687.5000 ns2 B
CountryByCode100000084,550,160.0000 ns391,468.2112 ns366,179.6077 ns84,580,233.3333 ns67 B
CountryStaticFieldAccess1000000199,805.0163 ns491.5580 ns459.8036 ns199,977.6611 ns-
CountryEqualsTrue10000000.0040 ns0.0051 ns0.0048 ns0.0020 ns-
CountryEqualsTrueNew1000000183.2498 ns1.1114 ns1.0396 ns183.0645 ns-
CountryEqualsFalse10000000.0044 ns0.0050 ns0.0047 ns0.0026 ns-
CountryEqualsFalseNew1000000622.5405 ns11.0644 ns10.3496 ns623.3470 ns-

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages