在C#中获得一个国家的大陆

时间:2011-03-27 15:52:38

标签: c# .net country regioninfo

有没有办法在C#中使用RegionInfo课程或任何其他方式查找国家/地区的大陆?

例如,您提供国家/地区名称“Denmark”并返回“Europe”。

7 个答案:

答案 0 :(得分:7)

在.NET框架中没有类似的东西。欧亚大陆和大洋洲的地理定义也相当模糊。正在使用6 distinct definitions。你需要自己的dbase。

答案 1 :(得分:3)

您可以存储hash table。条目将具有国家名称和大陆名称的值作为关键字。 只需从一些公共数据库生成此表,一旦拥有它,您只需查询它即可。它也很快。

http://www.geonames.org/countries/
你可以从那里得到一个数据库(有一个下载/导出选项)

答案 2 :(得分:2)

只有几个大陆,只有几百个国家,所以建立自己的桌子并不是很难。关于大陆是什么(澳大利亚/大洋洲/澳大拉西亚/亚洲有时特别棘手),以及是否土耳其和俄罗斯位于欧洲,亚洲或两者。尽管如此,至少可以让你自己开始自己打电话。

答案 3 :(得分:1)

答案 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)

唯一的解决方案是根据您需要的大陆模型构建您自己的查找列表。 例如,在美国和英国,我们将美洲视为两个独立的大陆(北美洲和南美洲),而大多数其他国家/地区的人们都被告知美洲是一个大陆。

您还应该考虑到一些国家/地区位于两大洲。俄罗斯一部分在欧洲,其余在亚洲。土耳其也是一样。