ManuHub.Libraries.Countries
1.1.0
dotnet add package ManuHub.Libraries.Countries --version 1.1.0
NuGet\Install-Package ManuHub.Libraries.Countries -Version 1.1.0
<PackageReference Include="ManuHub.Libraries.Countries" Version="1.1.0" />
<PackageVersion Include="ManuHub.Libraries.Countries" Version="1.1.0" />
<PackageReference Include="ManuHub.Libraries.Countries" />
paket add ManuHub.Libraries.Countries --version 1.1.0
#r "nuget: ManuHub.Libraries.Countries, 1.1.0"
#:package ManuHub.Libraries.Countries@1.1.0
#addin nuget:?package=ManuHub.Libraries.Countries&version=1.1.0
#tool nuget:?package=ManuHub.Libraries.Countries&version=1.1.0
ManuHub.Libraries.Countries
A comprehensive and lightweight .NET Standard library providing rich, query-ready country data for any application. Perfect for global apps, onboarding flows, phone number forms, analytics dashboards, and multi-region systems.
🌍 Features
- Country names and emoji flags
- ISO Alpha-2 and Alpha-3 codes
- International dialing (ISD) codes
- Timezone information with human-readable UTC offsets
- Capital cities, geographic coordinates, regions, and descriptions
- High-performance search & filtering API
- Embedded JSON dataset for instant local access
- Strongly-typed models and clean
CountryResultwrapper - Developer Helpers (extensions, lookup helpers, timezone utilities)
- Supports .NET Standard 2.0+ and .NET 8/9/10
✨ Developer-Friendly
- Easy installation via NuGet
- Single-line lookups: FindByAlpha2("US"), FindByDialCode("+91")
- Advanced queries using CountrySearchOptions
- Includes timezone offset resolver (GetLocalUtcOffset)
- Works in Blazor, ASP.NET Core, MAUI, Unity, Xamarin, background services, and more.
Installation
You can install the package via NuGet:
dotnet add package ManuHub.Libraries.Countries
Or via the NuGet Package Manager:
Install-Package ManuHub.Libraries.Countries
Usage
Get all countries
using ManuHub.Libraries.Countries;
var allCountriesResult = CountryProvider.GetAllCountries();
if (allCountriesResult.Success)
{
foreach (var country in allCountriesResult.Countries)
{
Console.WriteLine(country);
}
}
else
{
Console.WriteLine($"Error: {allCountriesResult.ErrorMessage}");
}
Lookup by Alpha-2 code
var indiaResult = CountryProvider.GetByAlpha2("IN");
if (indiaResult.Success)
{
var india = indiaResult.Countries.First();
Console.WriteLine(india); // 🇮🇳 India (+91, UTC+05:30)
}
else
{
Console.WriteLine(indiaResult.ErrorMessage);
}
Search countries by partial name
var searchResult = CountryProvider.SearchByName("land");
if (searchResult.Success)
{
foreach (var country in searchResult.Countries)
{
Console.WriteLine(country.Name);
}
}
Filter countries by region
var asiaResult = CountryProvider.GetByRegion("Asia");
if (asiaResult.Success)
{
foreach (var country in asiaResult.Countries)
{
Console.WriteLine($"{country.Name} ({country.Capital})");
}
}
ToString() Output
Every Country object has a clean string representation for display:
var india = CountryProvider.GetByAlpha2("IN").Countries.First();
Console.WriteLine(india);
Result
🇮🇳 India (+91, UTC+05:30)
Features
- Embedded JSON data for fast and offline access
- ISO standard codes (Alpha-2 and Alpha-3)
- Dialing codes with '+' sign
- Timezone IDs converted to UTC offsets automatically
- Latitude/longitude for mapping
- Description fields for additional context
- Search and filter by multiple criteria with caching and indexing
- Clean
CountryResultwrapper for success/error handling
Contributing
Contributions, issues, and feature requests are welcome! Feel free to open a pull request or issue.
License
MIT License. See LICENSE for details.
Made with ❤️ by ManuHub.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- System.Text.Json (>= 10.0.0)
-
net10.0
- No dependencies.
-
net8.0
- System.Text.Json (>= 10.0.0)
-
net9.0
- System.Text.Json (>= 10.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.