C# 我的本地机器上Czechia的英文名称与Azure上Czechia的英文名称不同

C# 我的本地机器上Czechia的英文名称与Azure上Czechia的英文名称不同,c#,.net,azure,cultureinfo,regioninfo,C#,.net,Azure,Cultureinfo,Regioninfo,我试图通过国家名称获取RegionInfo对象。我想出了以下代码: var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID)); var regionInfo = regions.FirstOrDefault(region => region.EnglishName.Contains(englishCountryName)); 它

我试图通过国家名称获取
RegionInfo
对象。我想出了以下代码:

 var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID));
 var regionInfo = regions.FirstOrDefault(region => region.EnglishName.Contains(englishCountryName));
它在我的机器上运行得很好。但当我将其部署到Azure应用程序服务上时,对于Czechia,它返回
null

所以我测试了它:

//My machine
new RegionInfo(1029).EnglishName //returns Czechia
//Azure
new RegionInfo(1029).EnglishName //returns Czech Republic
事实证明,捷克共和国在2016年更改了名称,那么为什么Azure显示“旧”名称呢?
如何使此解决方案独立于区域性?

随着国家名称可能发生变化,您最好使用一个ISO代码

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