C'è un modo per trovare il continente di un paese in C#, usando la classe RegionInfo
o in qualsiasi altro modo?Ottieni il continente di un paese in C#
Ad esempio, il nome del paese è "Danimarca" e restituisce "Europa".
C'è un modo per trovare il continente di un paese in C#, usando la classe RegionInfo
o in qualsiasi altro modo?Ottieni il continente di un paese in C#
Ad esempio, il nome del paese è "Danimarca" e restituisce "Europa".
È possibile memorizzare un hash table. Le voci avranno come chiave il nome del paese e come valore il nome del continente. Basta generare questa tabella da un database pubblico e, una volta ottenuta, è sufficiente interrogarla. È anche piuttosto veloce.
http://www.geonames.org/countries/
È possibile ottenere da lì un database (c'è un'opzione per scaricare/Export)
Nulla di simile nel framework .NET. È anche piuttosto ambiguo con le definizioni geografiche per l'Eurasia e l'Oceania. Ci sono 6 distinct definitions 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 costruire il proprio tavolo. Ci sono divergenze di opinioni su ciò che i continenti sono (Australia/Oceania/Australasia/Asia a volte particolarmente spinose), e se ad es. La Turchia e la Russia sono in Europa, in Asia o in entrambi. Tuttavia, rotolare il tuo almeno ti consente di chiamare da solo su questi argomenti.
+1 E per complicare ulteriormente le cose, ci sono opinioni divergenti su cosa * paesi * qualificano come paesi. Uomo, la geopolitica è dura! –
@Cody, possiamo spesso passare dall'elenco di codici ISO per i nomi e lasciare solo quello a cui si riferiscono quei nomi per gli altri. Ho ancora alcune volte dovuto costruire sistemi che conciliano gli schemi di altri sistemi e non c'è una soluzione perfetta, ma questi sono disaccordi che spesso hanno portato a guerre e conflitti di guerriglia, quindi nessun programmatore può aspettarsi di risolverli tutti . –
Non stavo certo suggerendo che qualsiasi programmatore potesse risolvere tutti i problemi! Il suggerimento di usare la lista ISO è buono, però. –
RegionInfo non memorizza il continente. Ma puoi costruire un database usando GeoNames.org Country Information. Il formato dei dati è un testo delimitato da tabulazioni nella codifica utf8. Ha tutte le informazioni e più di cui hai bisogno.
È possibile utilizzare http://products.wolframalpha.com/api/
http://www.wolframalpha.com/input/?i=continent+THECOUNTRY
http://www.wolframalpha.com/input/?i=continent+sweden
Cosa c'entra questo con C# o .NET? –
Non so se WA sarebbe felice di un'applicazione che utilizza il proprio sito Web come servizio Web per un problema che può essere risolto dopo un paio d'ore di lavoro. – Will
Sono d'accordo con la parte della tabella hash, ma da cui database pubblico faccio lo popolano? Conosci qualche servizio web che posso usare o qualcosa del genere? –
Non è così importante non farlo manualmente, credo. Usando qualcosa di simile, forse: http://www.geonames.org/countries/ –
2002 ha chiamato e vuole che le sue collezioni non tipizzate siano tornate. –