C# 获取 RegionInfo, TwoLetterISORegionName, 通过瑞典国家名称
C# get RegionInfo, TwoLetterISORegionName, by Swedish country name
我需要获取国家/地区的两个字母 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;
尝试与 NativeName
进行比较:
string nativeName = "Sverige"; // Sweden
var region = CultureInfo
.GetCultures(CultureTypes.SpecificCultures)
.Select(ci => new RegionInfo(ci.LCID))
.FirstOrDefault(rg => rg.NativeName == nativeName);
Console.Write($"{region.TwoLetterISORegionName}");
编辑: 看来我们真的想通过它的瑞典语名称找出RegionInfo
实例
Sverige -> Sweden
Tyskland -> Germany
...
在这种情况下,我们应该使用 DisplayName
而不是 NativeName
:
string swedishName = "Sverige"; // Sweden
var region = CultureInfo
.GetCultures(CultureTypes.SpecificCultures)
.Select(ci => new RegionInfo(ci.LCID))
.FirstOrDefault(rg => rg.DisplayName == swedishName);
我们应该确保我们使用 localized .Net
The DisplayName property displays the country/region name in the
language of the localized version of .NET Framework. For example,
the DisplayName property displays the country/region in English on the
English version of the .NET Framework, and in Spanish on the Spanish
version of the .NET Framework.
我需要获取国家/地区的两个字母 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;
尝试与 NativeName
进行比较:
string nativeName = "Sverige"; // Sweden
var region = CultureInfo
.GetCultures(CultureTypes.SpecificCultures)
.Select(ci => new RegionInfo(ci.LCID))
.FirstOrDefault(rg => rg.NativeName == nativeName);
Console.Write($"{region.TwoLetterISORegionName}");
编辑: 看来我们真的想通过它的瑞典语名称找出RegionInfo
实例
Sverige -> Sweden
Tyskland -> Germany
...
在这种情况下,我们应该使用 DisplayName
而不是 NativeName
:
string swedishName = "Sverige"; // Sweden
var region = CultureInfo
.GetCultures(CultureTypes.SpecificCultures)
.Select(ci => new RegionInfo(ci.LCID))
.FirstOrDefault(rg => rg.DisplayName == swedishName);
我们应该确保我们使用 localized .Net
The DisplayName property displays the country/region name in the language of the localized version of .NET Framework. For example, the DisplayName property displays the country/region in English on the English version of the .NET Framework, and in Spanish on the Spanish version of the .NET Framework.