有没有办法在C#中使用RegionInfo
课程或任何其他方式查找国家/地区的大陆?
例如,您提供国家/地区名称“Denmark”并返回“Europe”。
答案 0 :(得分:7)
在.NET框架中没有类似的东西。欧亚大陆和大洋洲的地理定义也相当模糊。正在使用6 distinct definitions。你需要自己的dbase。
答案 1 :(得分:3)
您可以存储hash table。条目将具有国家名称和大陆名称的值作为关键字。 只需从一些公共数据库生成此表,一旦拥有它,您只需查询它即可。它也很快。
http://www.geonames.org/countries/
你可以从那里得到一个数据库(有一个下载/导出选项)
答案 2 :(得分:2)
只有几个大陆,只有几百个国家,所以建立自己的桌子并不是很难。关于大陆是什么(澳大利亚/大洋洲/澳大拉西亚/亚洲有时特别棘手),以及是否土耳其和俄罗斯位于欧洲,亚洲或两者。尽管如此,至少可以让你自己开始自己打电话。
答案 3 :(得分:1)
你可以使用 http://products.wolframalpha.com/api/
http://www.wolframalpha.com/input/?i=continent+THECOUNTRY
http://www.wolframalpha.com/input/?i=continent+sweden
答案 4 :(得分:0)
RegionInfo不存储大陆。但您可以使用GeoNames.org Country Information构建数据库。数据格式是以utf8编码的制表符分隔文本。它拥有您需要的所有信息和更多信息。
答案 5 :(得分:0)
我知道这是一个老问题,但是我已经为C#创建了一个库,其中包含了意外信息。您可以在Nager.Country处找到我的项目,希望它对您有所帮助。
也可以使用nuget软件包install-package Nager.Country
示例
ICountryProvider countryProvider = new CountryProvider();
var countryInfo = countryProvider.GetCountry(Alpha2Code.DK);
答案 6 :(得分:-1)
唯一的解决方案是根据您需要的大陆模型构建您自己的查找列表。 例如,在美国和英国,我们将美洲视为两个独立的大陆(北美洲和南美洲),而大多数其他国家/地区的人们都被告知美洲是一个大陆。
您还应该考虑到一些国家/地区位于两大洲。俄罗斯一部分在欧洲,其余在亚洲。土耳其也是一样。