4

我正在尝试RegionInfo通过国家名称获取对象。我想出了这段代码:

 var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID));
 var regionInfo = regions.FirstOrDefault(region => region.EnglishName.Contains(englishCountryName));

它在我的机器上运行良好。但是当我将它部署在 Azure App Service 上时,它会返回null捷克。

所以我测试了它:

//My machine
new RegionInfo(1029).EnglishName //returns Czechia
//Azure
new RegionInfo(1029).EnglishName //returns Czech Republic

事实证明,捷克共和国在 2016 年更名,为什么 Azure 显示“旧”名称?如何使这个解决方案与文化无关?

4

1 回答 1

1

随着国家/地区名称可能发生变化,您最好使用其中一个 ISO 代码。

如果您不能根据您的输入使用 ISO 代码,您可以使用 ISO3166 NuGet 包之类的东西来控制将英语语言输入映射到 ISO 代码。我看到当前版本似乎也不是最新的,但如果你实施它,至少你会得到一个一致的值。

于 2019-04-24T12:39:13.147 回答