有没有办法在 C# 中找到一个国家的大陆,使用RegionInfo
类或任何其他方式?
例如,您将国家名称命名为“Denmark”,它返回“Europe”。
有没有办法在 C# 中找到一个国家的大陆,使用RegionInfo
类或任何其他方式?
例如,您将国家名称命名为“Denmark”,它返回“Europe”。
.NET 框架中没有这样的东西。欧亚大陆和大洋洲的地理定义也相当模糊。有6 种不同的定义在使用。您将需要自己的数据库。
你可以存储一个哈希表。条目将以国家名称作为键,以大陆名称作为值。只需从某个公共数据库生成此表,一旦拥有它,您就可以简单地查询它。它也非常快。
http://www.geonames.org/countries/
你可以从那里得到一个数据库
只有几大洲,几百个国家,所以自己建一张桌子也不是什么难事。对于这些大陆是什么(澳大利亚/大洋洲/澳大拉西亚/亚洲有时特别棘手),以及土耳其和俄罗斯是否在欧洲、亚洲或两者兼而有之,存在意见分歧。尽管如此,自己滚动至少可以让您在这些问题上做出自己的决定。
您可以使用 http://products.wolframalpha.com/api/
http://www.wolframalpha.com/input/?i=continent+THECOUNTRY
http://www.wolframalpha.com/input/?i=continent+sweden
RegionInfo 不存储大陆。但是您可以使用GeoNames.org Country Information建立一个数据库。数据格式是 utf8 编码的制表符分隔文本。它包含您需要的所有信息和更多信息。
我知道这是一个老问题,但我已经为 C# 创建了一个库,其中包含大陆信息。您可以在Nager.Country找到我的项目,希望对您有所帮助。
也可以使用 nuget 包install-package Nager.Country
例子
ICountryProvider countryProvider = new CountryProvider();
var countryInfo = countryProvider.GetCountry(Alpha2Code.DK);
唯一的解决方案是根据您需要的大陆模型构建您自己的查找列表。例如,在美国和英国,我们将美国视为两个独立的大陆(北美和南美),而大多数其他国家的人们都被教导说美国是一个大陆。
您还应该考虑到一些国家分布在两大洲。俄罗斯的一部分在欧洲,其余的在亚洲。土耳其也一样。