Domanda

C'è un modo per trovare il continente di un paese in C#, usando il RegionInfo classe o altro modo?

Ad esempio, dai il nome del paese "Danimarca" e restituisce "Europa".

È stato utile?

Soluzione

Puoi archiviare un tavolo hash. Le voci avranno come chiave il nome del paese e come valorizza il nome del continente. Basta generare questa tabella da alcuni database pubblici e una volta che l'hai possibile semplicemente interrogarlo. È anche abbastanza veloce.

http://www.geonames.org/countries/
Puoi ottenere da lì un database (esiste un'opzione per scaricare/esportare)

Altri suggerimenti

Niente del genere nel framework .NET. È anche piuttosto ambiguo con le definizioni geografiche per Eurasia e Oceania. Ci sono 6 definizioni distinte in uso. Avrai bisogno del tuo DBase.

Ci sono solo pochi continenti e solo un paio di centinaia di paesi, quindi non sarebbe molto difficile solo costruire il tuo tavolo. Ci sono differenze di opinione su ciò che sono i continenti (Australia/Oceania/Australasia/Asia a volte essendo particolarmente spinoso) e se ad esempio Turchia e Russia siano in Europa, Asia o entrambi. Tuttavia, arrotolare il tuo almeno ti consente di effettuare la tua chiamata su queste questioni.

So che è una vecchia domanda, ma ho creato una libreria per C# e questo contiene le informazioni conintendenti. Puoi trovare il mio progetto qui Nager.country Spero che ti aiuti.

È inoltre disponibile un pacchetto Nuget install-package Nager.Country

Esempio

ICountryProvider countryProvider = new CountryProvider();
var countryInfo = countryProvider.GetCountry(Alpha2Code.DK);

RegionInfo non immagazzina il continente. Ma puoi creare un database utilizzando Informazioni sul paese GEONAMES.org. Il formato dei dati è il testo delimitato da scheda nella codifica UTF8. Ha tutte le informazioni e più di cui hai bisogno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top