6

有没有办法在 C# 中找到一个国家的大陆,使用RegionInfo类或任何其他方式?

例如,您将国家名称命名为“Denmark”,它返回“Europe”。

4

7 回答 7

8

.NET 框架中没有这样的东西。欧亚大陆和大洋洲的地理定义也相当模糊。有6 种不同的定义在使用。您将需要自己的数据库。

于 2011-03-27T16:00:10.527 回答
5

你可以存储一个哈希表。条目将以国家名称作为键,以大陆名称作为值。只需从某个公共数据库生成此表,一旦拥有它,您就可以简单地查询它。它也非常快。

http://www.geonames.org/countries/
你可以从那里得到一个数据库

于 2011-03-27T15:57:03.213 回答
3

只有几大洲,几百个国家,所以自己建一张桌子也不是什么难事。对于这些大陆是什么(澳大利亚/大洋洲/澳大拉西亚/亚洲有时特别棘手),以及土耳其和俄罗斯是否在欧洲、亚洲或两者兼而有之,存在意见分歧。尽管如此,自己滚动至少可以让您在这些问题上做出自己的决定。

于 2011-03-27T16:01:04.727 回答
0

RegionInfo 不存储大陆。但是您可以使用GeoNames.org Country Information建立一个数据库。数据格式是 utf8 编码的制表符分隔文本。它包含您需要的所有信息和更多信息。

于 2011-03-27T16:15:12.043 回答
0

我知道这是一个老问题,但我已经为 C# 创建了一个库,其中包含大陆信息。您可以在Nager.Country找到我的项目,希望对您有所帮助。

也可以使用 nuget 包install-package Nager.Country

例子

ICountryProvider countryProvider = new CountryProvider();
var countryInfo = countryProvider.GetCountry(Alpha2Code.DK);
于 2019-01-31T23:22:18.363 回答
-1

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

您还应该考虑到一些国家分布在两大洲。俄罗斯的一部分在欧洲,其余的在亚洲。土耳其也一样。

于 2020-12-28T15:13:35.203 回答