Как получить код страны ISO 3166 из CultureInfo в .NET

#.net #.net-core #cultureinfo #culture #iso-3166

#.net #.net-core #cultureinfo #Культура #iso-3166

Вопрос:

Учитывая CultureInfo объект, как мне получить двухсимвольный код страны ISO 3166? Например. от en-US , я хочу US и от en-GB , я хочу GB . Мне также нужно обрабатывать случаи, когда у культуры может не быть кода страны.

Ответ №1:

Используйте RegionInfo-class для получения двух (или трех) буквенного названия региона iso:

 RegionInfo usa = new RegionInfo("en-US");           
string isoUSA = usa.TwoLetterISORegionName;

RegionInfo gb = new RegionInfo("en-GB");
string isoGB = gb.TwoLetterISORegionName;
  

Возможно, вы захотите перехватить возможное исключение, которое произойдет, если вы попытаетесь передать недопустимое значение конструктору.