我正在尝试通过国家/地区名称获取 RegionInfo
对象。我想出了这段代码:
var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID));
var regionInfo = regions.FirstOrDefault(region => region.EnglishName.Contains(englishCountryName));
它在我的机器上运行良好。但是,当我将其部署在 Azure 应用服务上时,它会为捷克返回 null
。
所以我测试了它:
//My machine
new RegionInfo(1029).EnglishName //returns Czechia
//Azure
new RegionInfo(1029).EnglishName //returns Czech Republic
事实证明,捷克共和国于 2016 年更改了名称,那么为什么 Azure 显示“旧”名称? 如何使这个解决方案独立于文化?
最佳答案
由于国家/地区名称可能会发生变化,您最好使用 ISO 代码之一。
如果您无法根据输入使用 ISO 代码,您可以使用 ISO3166 NuGet 包等工具来控制将英语输入映射到 ISO 代码。我发现当前版本似乎也不是最新的,但如果你实现它,至少你会得到一个一致的值。
关于c# - 我的本地计算机上的 Czechia 英文名称与 Azure 上的不同英文名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55829712/