我需要获取国家的两位字母的ISO区域代码,即ISO 3166 - ISO 3166-1 alpha 2。我的问题是,我只有用瑞典语写出的国家名称,例如Sverige代表Sweden,Tyskland代表Germany。是否可能仅通过这些信息获取RegionInfo?我知道对于英文国家名称是可以的。
可行方案:
var countryName = "Sweden";
//var countryName = "Denmark";
var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID));
var englishRegion = regions.FirstOrDefault(region => region.EnglishName.Contains(countryName));
var twoLetterISORegionName = englishRegion.TwoLetterISORegionName;
Sverige
和Danmark
,但是对于例如Tyskland
的Germany
处理失败。 - OgglasTyskland
,对应的是Germany
。 :) - OgglasDisplayName
放在NativeName
的位置,但这需要本地化(瑞典)的 .Net 版本,请参见 http://stackoverflow.com/questions/28408154/how-to-force-culture-。 - Dmitry Bychenko