.NETには、3文字の国コード(ISO 3166-1 alpha-3で定義)から2文字言語コード(ISO 3166-1 alpha-2で定義)に変換する方法があります。 BELをBEに変換しますか?
System.GlobalizationのRegionInfoクラスを調べましたが、コンストラクターは3文字のコードをサポートしていないようです。
RegionInfo
クラスは3文字のコード( ThreeLetterISORegionName
プロパティ内)を知っていますが、RegionInfo
このコードに基づいて、3文字のコードをキーとして、すべての領域を列挙し、独自の辞書に追加する必要があります。
ただし、.NET FrameworkはRegionInfo
を使用してculturesを操作します。ISO3166-1の意味での国ではありません。したがって、ISO 3166-1規格の多くの国は利用できません(例:SX
)。独自の国コードブックを作成する必要があると思います。
編集:現在の国コードブックの246か国のうち、RegionInfo
は125か国で利用可能ですが、残り(121)はサポートされていません。結論:これは、国別コードブックを入手する良い方法ではありません。
そのための組み込みの方法はないようです。 GenericTypeTeaの答え からアプローチを使用できます。ただし、多くの国コードを変換する必要がある場合は、Cultures列挙を回避し、国コード変換用のマッピング辞書を事前に計算できます。
そのようなジェネレーターは次のようになります。
namespace ISOCountryCodes
{
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
class Program
{
public static void Main(string[] args)
{
var countryCodesMapping = new Dictionary<string, RegionInfo>();
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
foreach (var culture in cultures)
{
try
{
var region = new RegionInfo(culture.LCID);
countryCodesMapping[region.ThreeLetterISORegionName] = region;
}
catch (CultureNotFoundException)
{
var consoleColor = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Culture not found: " + culture.Name);
Console.ForegroundColor = consoleColor;
}
}
Console.WriteLine("var countryCodesMapping = new Dictionary<string, string>() {");
foreach (var mapping in countryCodesMapping.OrderBy(mapping => mapping.Key))
{
Console.WriteLine(" {{ \"{0}\", \"{1}\" }}, // {2}", mapping.Key, mapping.Value.TwoLetterISORegionName, mapping.Value.EnglishName);
}
Console.WriteLine("};");
}
}
}
このジェネレーターを実行して、次のような国コードマッピング辞書を取得します。
var countryCodesMapping = new Dictionary<string, string>() {
{ "AFG", "AF" }, // Afghanistan
{ "ALB", "AL" }, // Albania
{ "ARE", "AE" }, // U.A.E.
{ "ARG", "AR" }, // Argentina
{ "ARM", "AM" }, // Armenia
{ "AUS", "AU" }, // Australia
{ "AUT", "AT" }, // Austria
{ "AZE", "AZ" }, // Azerbaijan
{ "BEL", "BE" }, // Belgium
{ "BGD", "BD" }, // Bangladesh
{ "BGR", "BG" }, // Bulgaria
{ "BHR", "BH" }, // Bahrain
{ "BIH", "BA" }, // Bosnia and Herzegovina
{ "BLR", "BY" }, // Belarus
{ "BLZ", "BZ" }, // Belize
{ "BOL", "BO" }, // Bolivia
{ "BRA", "BR" }, // Brazil
{ "BRN", "BN" }, // Brunei Darussalam
{ "CAN", "CA" }, // Canada
{ "CHE", "CH" }, // Switzerland
{ "CHL", "CL" }, // Chile
{ "CHN", "CN" }, // People's Republic of China
{ "COL", "CO" }, // Colombia
{ "CRI", "CR" }, // Costa Rica
{ "CZE", "CZ" }, // Czech Republic
{ "DEU", "DE" }, // Germany
{ "DNK", "DK" }, // Denmark
{ "DOM", "DO" }, // Dominican Republic
{ "DZA", "DZ" }, // Algeria
{ "ECU", "EC" }, // Ecuador
{ "EGY", "EG" }, // Egypt
{ "ESP", "ES" }, // Spain
{ "EST", "EE" }, // Estonia
{ "ETH", "ET" }, // Ethiopia
{ "FIN", "FI" }, // Finland
{ "FRA", "FR" }, // France
{ "FRO", "FO" }, // Faroe Islands
{ "GBR", "GB" }, // United Kingdom
{ "GEO", "GE" }, // Georgia
{ "GRC", "GR" }, // Greece
{ "GRL", "GL" }, // Greenland
{ "GTM", "GT" }, // Guatemala
{ "HKG", "HK" }, // Hong Kong S.A.R.
{ "HND", "HN" }, // Honduras
{ "HRV", "HR" }, // Croatia
{ "HUN", "HU" }, // Hungary
{ "IDN", "ID" }, // Indonesia
{ "IND", "IN" }, // India
{ "IRL", "IE" }, // Ireland
{ "IRN", "IR" }, // Iran
{ "IRQ", "IQ" }, // Iraq
{ "ISL", "IS" }, // Iceland
{ "ISR", "IL" }, // Israel
{ "ITA", "IT" }, // Italy
{ "JAM", "JM" }, // Jamaica
{ "JOR", "JO" }, // Jordan
{ "JPN", "JP" }, // Japan
{ "KAZ", "KZ" }, // Kazakhstan
{ "KEN", "KE" }, // Kenya
{ "KGZ", "KG" }, // Kyrgyzstan
{ "KHM", "KH" }, // Cambodia
{ "KOR", "KR" }, // Korea
{ "KWT", "KW" }, // Kuwait
{ "LAO", "LA" }, // Lao P.D.R.
{ "LBN", "LB" }, // Lebanon
{ "LBY", "LY" }, // Libya
{ "LIE", "LI" }, // Liechtenstein
{ "LKA", "LK" }, // Sri Lanka
{ "LTU", "LT" }, // Lithuania
{ "Lux", "LU" }, // Luxembourg
{ "LVA", "LV" }, // Latvia
{ "MAC", "MO" }, // Macao S.A.R.
{ "MAR", "MA" }, // Morocco
{ "MCO", "MC" }, // Principality of Monaco
{ "MDV", "MV" }, // Maldives
{ "MEX", "MX" }, // Mexico
{ "MKD", "MK" }, // Macedonia (FYROM)
{ "MLT", "MT" }, // Malta
{ "MNE", "ME" }, // Montenegro
{ "MNG", "MN" }, // Mongolia
{ "MYS", "MY" }, // Malaysia
{ "NGA", "NG" }, // Nigeria
{ "NIC", "NI" }, // Nicaragua
{ "NLD", "NL" }, // Netherlands
{ "NOR", "NO" }, // Norway
{ "NPL", "NP" }, // Nepal
{ "NZL", "NZ" }, // New Zealand
{ "OMN", "OM" }, // Oman
{ "PAK", "PK" }, // Islamic Republic of Pakistan
{ "PAN", "PA" }, // Panama
{ "PER", "PE" }, // Peru
{ "PHL", "PH" }, // Republic of the Philippines
{ "POL", "PL" }, // Poland
{ "PRI", "PR" }, // Puerto Rico
{ "PRT", "PT" }, // Portugal
{ "PRY", "PY" }, // Paraguay
{ "QAT", "QA" }, // Qatar
{ "ROU", "RO" }, // Romania
{ "RUS", "RU" }, // Russia
{ "RWA", "RW" }, // Rwanda
{ "SAU", "SA" }, // Saudi Arabia
{ "SCG", "CS" }, // Serbia and Montenegro (Former)
{ "SEN", "SN" }, // Senegal
{ "SGP", "SG" }, // Singapore
{ "SLV", "SV" }, // El Salvador
{ "SRB", "RS" }, // Serbia
{ "SVK", "SK" }, // Slovakia
{ "SVN", "SI" }, // Slovenia
{ "SWE", "SE" }, // Sweden
{ "SYR", "SY" }, // Syria
{ "TAJ", "TJ" }, // Tajikistan
{ "THA", "TH" }, // Thailand
{ "TKM", "TM" }, // Turkmenistan
{ "TTO", "TT" }, // Trinidad and Tobago
{ "TUN", "TN" }, // Tunisia
{ "TUR", "TR" }, // Turkey
{ "TWN", "TW" }, // Taiwan
{ "UKR", "UA" }, // Ukraine
{ "URY", "UY" }, // Uruguay
{ "USA", "US" }, // United States
{ "UZB", "UZ" }, // Uzbekistan
{ "VEN", "VE" }, // Bolivarian Republic of Venezuela
{ "VNM", "VN" }, // Vietnam
{ "YEM", "YE" }, // Yemen
{ "ZAF", "ZA" }, // South Africa
{ "ZWE", "ZW" }, // Zimbabwe
};
更新:
以前は質問をきちんと読んでいませんでした。次のshouldは、ISO 3166-1 alpha-3からISO 3166-1 alpha-2に正しく変換されるようになりました。
それを行うための方法は組み込まれていません。手動で一致を見つけるには、CultureInfo
sを反復処理してRegionInfo
sを取得する必要があります(これは非常に非効率的であるため、一部のキャッシュが推奨されます)。
public string ConvertThreeLetterNameToTwoLetterName(string name)
{
if (name.Length != 3)
{
throw new ArgumentException("name must be three letters.");
}
name = name.ToUpper();
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
foreach (CultureInfo culture in cultures)
{
RegionInfo region = new RegionInfo(culture.LCID);
if (region.ThreeLetterISORegionName.ToUpper() == name)
{
return region.TwoLetterISORegionName;
}
}
return null;
}
ISO3166-1エントリをクエリおよび管理するために、この迅速でダーティなクラスをつなぎ合わせました。アルファ3コードでクエリを実行するメソッドは1つしかありませんが、必要に応じて他の変換を追加するのに十分なほど単純でなければなりません。
使用例:
string countryName = ISO3166.FromAlpha3("Lux").Name;
クラス:
public static class ISO3166
{
/// <summary>
/// Obtain ISO3166-1 Country based on its alpha3 code.
/// </summary>
/// <param name="alpha3"></param>
/// <returns></returns>
public static ISO3166Country FromAlpha3(string alpha3)
{
Collection<ISO3166Country> collection = BuildCollection();
return collection.FirstOrDefault(p => p.Alpha3 == alpha3);
}
#region Build Collection
private static Collection<ISO3166Country> BuildCollection()
{
Collection<ISO3166Country> collection = new Collection<ISO3166Country>();
// This collection built from Wikipedia entry on ISO3166-1 on 9th Feb 2016
collection.Add(new ISO3166Country("Afghanistan", "AF", "AFG", 4));
collection.Add(new ISO3166Country("Åland Islands", "AX", "ALA", 248));
collection.Add(new ISO3166Country("Albania", "AL", "ALB", 8));
collection.Add(new ISO3166Country("Algeria", "DZ", "DZA", 12));
collection.Add(new ISO3166Country("American Samoa", "AS", "ASM", 16));
collection.Add(new ISO3166Country("Andorra", "AD", "AND", 20));
collection.Add(new ISO3166Country("Angola", "AO", "AGO", 24));
collection.Add(new ISO3166Country("Anguilla", "AI", "AIA", 660));
collection.Add(new ISO3166Country("Antarctica", "AQ", "ATA", 10));
collection.Add(new ISO3166Country("Antigua and Barbuda", "AG", "ATG", 28));
collection.Add(new ISO3166Country("Argentina", "AR", "ARG", 32));
collection.Add(new ISO3166Country("Armenia", "AM", "ARM", 51));
collection.Add(new ISO3166Country("Aruba", "AW", "ABW", 533));
collection.Add(new ISO3166Country("Australia", "AU", "AUS", 36));
collection.Add(new ISO3166Country("Austria", "AT", "AUT", 40));
collection.Add(new ISO3166Country("Azerbaijan", "AZ", "AZE", 31));
collection.Add(new ISO3166Country("Bahamas", "BS", "BHS", 44));
collection.Add(new ISO3166Country("Bahrain", "BH", "BHR", 48));
collection.Add(new ISO3166Country("Bangladesh", "BD", "BGD", 50));
collection.Add(new ISO3166Country("Barbados", "BB", "BRB", 52));
collection.Add(new ISO3166Country("Belarus", "BY", "BLR", 112));
collection.Add(new ISO3166Country("Belgium", "BE", "BEL", 56));
collection.Add(new ISO3166Country("Belize", "BZ", "BLZ", 84));
collection.Add(new ISO3166Country("Benin", "BJ", "BEN", 204));
collection.Add(new ISO3166Country("Bermuda", "BM", "BMU", 60));
collection.Add(new ISO3166Country("Bhutan", "BT", "BTN", 64));
collection.Add(new ISO3166Country("Bolivia (Plurinational State of)", "BO", "BOL", 68));
collection.Add(new ISO3166Country("Bonaire, Sint Eustatius and Saba", "BQ", "BES", 535));
collection.Add(new ISO3166Country("Bosnia and Herzegovina", "BA", "BIH", 70));
collection.Add(new ISO3166Country("Botswana", "BW", "BWA", 72));
collection.Add(new ISO3166Country("Bouvet Island", "BV", "BVT", 74));
collection.Add(new ISO3166Country("Brazil", "BR", "BRA", 76));
collection.Add(new ISO3166Country("British Indian Ocean Territory", "IO", "IOT", 86));
collection.Add(new ISO3166Country("Brunei Darussalam", "BN", "BRN", 96));
collection.Add(new ISO3166Country("Bulgaria", "BG", "BGR", 100));
collection.Add(new ISO3166Country("Burkina Faso", "BF", "BFA", 854));
collection.Add(new ISO3166Country("Burundi", "BI", "BDI", 108));
collection.Add(new ISO3166Country("Cabo Verde", "CV", "CPV", 132));
collection.Add(new ISO3166Country("Cambodia", "KH", "KHM", 116));
collection.Add(new ISO3166Country("Cameroon", "CM", "CMR", 120));
collection.Add(new ISO3166Country("Canada", "CA", "CAN", 124));
collection.Add(new ISO3166Country("Cayman Islands", "KY", "CYM", 136));
collection.Add(new ISO3166Country("Central African Republic", "CF", "CAF", 140));
collection.Add(new ISO3166Country("Chad", "TD", "TCD", 148));
collection.Add(new ISO3166Country("Chile", "CL", "CHL", 152));
collection.Add(new ISO3166Country("China", "CN", "CHN", 156));
collection.Add(new ISO3166Country("Christmas Island", "CX", "CXR", 162));
collection.Add(new ISO3166Country("Cocos (Keeling) Islands", "CC", "CCK", 166));
collection.Add(new ISO3166Country("Colombia", "CO", "COL", 170));
collection.Add(new ISO3166Country("Comoros", "KM", "COM", 174));
collection.Add(new ISO3166Country("Congo", "CG", "COG", 178));
collection.Add(new ISO3166Country("Congo (Democratic Republic of the)", "CD", "COD", 180));
collection.Add(new ISO3166Country("Cook Islands", "CK", "COK", 184));
collection.Add(new ISO3166Country("Costa Rica", "CR", "CRI", 188));
collection.Add(new ISO3166Country("Côte d'Ivoire", "CI", "CIV", 384));
collection.Add(new ISO3166Country("Croatia", "HR", "HRV", 191));
collection.Add(new ISO3166Country("Cuba", "CU", "CUB", 192));
collection.Add(new ISO3166Country("Curaçao", "CW", "CUW", 531));
collection.Add(new ISO3166Country("Cyprus", "CY", "CYP", 196));
collection.Add(new ISO3166Country("Czech Republic", "CZ", "CZE", 203));
collection.Add(new ISO3166Country("Denmark", "DK", "DNK", 208));
collection.Add(new ISO3166Country("Djibouti", "DJ", "DJI", 262));
collection.Add(new ISO3166Country("Dominica", "DM", "DMA", 212));
collection.Add(new ISO3166Country("Dominican Republic", "DO", "DOM", 214));
collection.Add(new ISO3166Country("Ecuador", "EC", "ECU", 218));
collection.Add(new ISO3166Country("Egypt", "EG", "EGY", 818));
collection.Add(new ISO3166Country("El Salvador", "SV", "SLV", 222));
collection.Add(new ISO3166Country("Equatorial Guinea", "GQ", "GNQ", 226));
collection.Add(new ISO3166Country("Eritrea", "ER", "ERI", 232));
collection.Add(new ISO3166Country("Estonia", "EE", "EST", 233));
collection.Add(new ISO3166Country("Ethiopia", "ET", "ETH", 231));
collection.Add(new ISO3166Country("Falkland Islands (Malvinas)", "FK", "FLK", 238));
collection.Add(new ISO3166Country("Faroe Islands", "FO", "FRO", 234));
collection.Add(new ISO3166Country("Fiji", "FJ", "FJI", 242));
collection.Add(new ISO3166Country("Finland", "FI", "FIN", 246));
collection.Add(new ISO3166Country("France", "FR", "FRA", 250));
collection.Add(new ISO3166Country("French Guiana", "GF", "GUF", 254));
collection.Add(new ISO3166Country("French Polynesia", "PF", "PYF", 258));
collection.Add(new ISO3166Country("French Southern Territories", "TF", "ATF", 260));
collection.Add(new ISO3166Country("Gabon", "GA", "GAB", 266));
collection.Add(new ISO3166Country("Gambia", "GM", "GMB", 270));
collection.Add(new ISO3166Country("Georgia", "GE", "GEO", 268));
collection.Add(new ISO3166Country("Germany", "DE", "DEU", 276));
collection.Add(new ISO3166Country("Ghana", "GH", "GHA", 288));
collection.Add(new ISO3166Country("Gibraltar", "GI", "GIB", 292));
collection.Add(new ISO3166Country("Greece", "GR", "GRC", 300));
collection.Add(new ISO3166Country("Greenland", "GL", "GRL", 304));
collection.Add(new ISO3166Country("Grenada", "Gd", "GRD", 308));
collection.Add(new ISO3166Country("Guadeloupe", "GP", "GLP", 312));
collection.Add(new ISO3166Country("Guam", "GU", "GUM", 316));
collection.Add(new ISO3166Country("Guatemala", "GT", "GTM", 320));
collection.Add(new ISO3166Country("Guernsey", "GG", "GGY", 831));
collection.Add(new ISO3166Country("Guinea", "GN", "GIN", 324));
collection.Add(new ISO3166Country("Guinea-Bissau", "GW", "GNB", 624));
collection.Add(new ISO3166Country("Guyana", "GY", "GUY", 328));
collection.Add(new ISO3166Country("Haiti", "HT", "HTI", 332));
collection.Add(new ISO3166Country("Heard Island and McDonald Islands", "HM", "HMD", 334));
collection.Add(new ISO3166Country("Holy See", "VA", "VAT", 336));
collection.Add(new ISO3166Country("Honduras", "HN", "HND", 340));
collection.Add(new ISO3166Country("Hong Kong", "HK", "HKG", 344));
collection.Add(new ISO3166Country("Hungary", "HU", "HUN", 348));
collection.Add(new ISO3166Country("Iceland", "IS", "ISL", 352));
collection.Add(new ISO3166Country("India", "IN", "IND", 356));
collection.Add(new ISO3166Country("Indonesia", "ID", "IDN", 360));
collection.Add(new ISO3166Country("Iran (Islamic Republic of)", "IR", "IRN", 364));
collection.Add(new ISO3166Country("Iraq", "IQ", "IRQ", 368));
collection.Add(new ISO3166Country("Ireland", "IE", "IRL", 372));
collection.Add(new ISO3166Country("Isle of Man", "IM", "IMN", 833));
collection.Add(new ISO3166Country("Israel", "IL", "ISR", 376));
collection.Add(new ISO3166Country("Italy", "IT", "ITA", 380));
collection.Add(new ISO3166Country("Jamaica", "JM", "JAM", 388));
collection.Add(new ISO3166Country("Japan", "JP", "JPN", 392));
collection.Add(new ISO3166Country("Jersey", "JE", "JEY", 832));
collection.Add(new ISO3166Country("Jordan", "JO", "JOR", 400));
collection.Add(new ISO3166Country("Kazakhstan", "KZ", "KAZ", 398));
collection.Add(new ISO3166Country("Kenya", "KE", "KEN", 404));
collection.Add(new ISO3166Country("Kiribati", "KI", "KIR", 296));
collection.Add(new ISO3166Country("Korea (Democratic People's Republic of)", "KP", "PRK", 408));
collection.Add(new ISO3166Country("Korea (Republic of)", "KR", "KOR", 410));
collection.Add(new ISO3166Country("Kuwait", "KW", "KWT", 414));
collection.Add(new ISO3166Country("Kyrgyzstan", "KG", "KGZ", 417));
collection.Add(new ISO3166Country("Lao People's Democratic Republic", "LA", "LAO", 418));
collection.Add(new ISO3166Country("Latvia", "LV", "LVA", 428));
collection.Add(new ISO3166Country("Lebanon", "LB", "LBN", 422));
collection.Add(new ISO3166Country("Lesotho", "LS", "LSO", 426));
collection.Add(new ISO3166Country("Liberia", "LR", "LBR", 430));
collection.Add(new ISO3166Country("Libya", "LY", "LBY", 434));
collection.Add(new ISO3166Country("Liechtenstein", "LI", "LIE", 438));
collection.Add(new ISO3166Country("Lithuania", "LT", "LTU", 440));
collection.Add(new ISO3166Country("Luxembourg", "LU", "Lux", 442));
collection.Add(new ISO3166Country("Macao", "MO", "MAC", 446));
collection.Add(new ISO3166Country("Macedonia (the former Yugoslav Republic of)", "MK", "MKD", 807));
collection.Add(new ISO3166Country("Madagascar", "MG", "MDG", 450));
collection.Add(new ISO3166Country("Malawi", "MW", "MWI", 454));
collection.Add(new ISO3166Country("Malaysia", "MY", "MYS", 458));
collection.Add(new ISO3166Country("Maldives", "MV", "MDV", 462));
collection.Add(new ISO3166Country("Mali", "ML", "MLI", 466));
collection.Add(new ISO3166Country("Malta", "MT", "MLT", 470));
collection.Add(new ISO3166Country("Marshall Islands", "MH", "MHL", 584));
collection.Add(new ISO3166Country("Martinique", "MQ", "MTQ", 474));
collection.Add(new ISO3166Country("Mauritania", "MR", "MRT", 478));
collection.Add(new ISO3166Country("Mauritius", "MU", "MUS", 480));
collection.Add(new ISO3166Country("Mayotte", "YT", "MYT", 175));
collection.Add(new ISO3166Country("Mexico", "MX", "MEX", 484));
collection.Add(new ISO3166Country("Micronesia (Federated States of)", "FM", "FSM", 583));
collection.Add(new ISO3166Country("Moldova (Republic of)", "MD", "MDA", 498));
collection.Add(new ISO3166Country("Monaco", "MC", "MCO", 492));
collection.Add(new ISO3166Country("Mongolia", "MN", "MNG", 496));
collection.Add(new ISO3166Country("Montenegro", "ME", "MNE", 499));
collection.Add(new ISO3166Country("Montserrat", "MS", "MSR", 500));
collection.Add(new ISO3166Country("Morocco", "MA", "MAR", 504));
collection.Add(new ISO3166Country("Mozambique", "MZ", "MOZ", 508));
collection.Add(new ISO3166Country("Myanmar", "MM", "MMR", 104));
collection.Add(new ISO3166Country("Namibia", "NA", "NAM", 516));
collection.Add(new ISO3166Country("Nauru", "NR", "NRU", 520));
collection.Add(new ISO3166Country("Nepal", "NP", "NPL", 524));
collection.Add(new ISO3166Country("Netherlands", "NL", "NLD", 528));
collection.Add(new ISO3166Country("New Caledonia", "NC", "NCL", 540));
collection.Add(new ISO3166Country("New Zealand", "NZ", "NZL", 554));
collection.Add(new ISO3166Country("Nicaragua", "NI", "NIC", 558));
collection.Add(new ISO3166Country("Niger", "NE", "NER", 562));
collection.Add(new ISO3166Country("Nigeria", "NG", "NGA", 566));
collection.Add(new ISO3166Country("Niue", "NU", "NIU", 570));
collection.Add(new ISO3166Country("Norfolk Island", "NF", "NFK", 574));
collection.Add(new ISO3166Country("Northern Mariana Islands", "MP", "MNP", 580));
collection.Add(new ISO3166Country("Norway", "NO", "NOR", 578));
collection.Add(new ISO3166Country("Oman", "OM", "OMN", 512));
collection.Add(new ISO3166Country("Pakistan", "PK", "PAK", 586));
collection.Add(new ISO3166Country("Palau", "PW", "PLW", 585));
collection.Add(new ISO3166Country("Palestine, State of", "PS", "PSE", 275));
collection.Add(new ISO3166Country("Panama", "PA", "PAN", 591));
collection.Add(new ISO3166Country("Papua New Guinea", "PG", "PNG", 598));
collection.Add(new ISO3166Country("Paraguay", "PY", "PRY", 600));
collection.Add(new ISO3166Country("Peru", "PE", "PER", 604));
collection.Add(new ISO3166Country("Philippines", "PH", "PHL", 608));
collection.Add(new ISO3166Country("Pitcairn", "PN", "PCN", 612));
collection.Add(new ISO3166Country("Poland", "PL", "POL", 616));
collection.Add(new ISO3166Country("Portugal", "PT", "PRT", 620));
collection.Add(new ISO3166Country("Puerto Rico", "PR", "PRI", 630));
collection.Add(new ISO3166Country("Qatar", "QA", "QAT", 634));
collection.Add(new ISO3166Country("Réunion", "RE", "REU", 638));
collection.Add(new ISO3166Country("Romania", "RO", "ROU", 642));
collection.Add(new ISO3166Country("Russian Federation", "RU", "RUS", 643));
collection.Add(new ISO3166Country("Rwanda", "RW", "RWA", 646));
collection.Add(new ISO3166Country("Saint Barthélemy", "BL", "BLM", 652));
collection.Add(new ISO3166Country("Saint Helena, Ascension and Tristan da Cunha", "SH", "SHN", 654));
collection.Add(new ISO3166Country("Saint Kitts and Nevis", "KN", "KNA", 659));
collection.Add(new ISO3166Country("Saint Lucia", "LC", "LCA", 662));
collection.Add(new ISO3166Country("Saint Martin (French part)", "MF", "MAF", 663));
collection.Add(new ISO3166Country("Saint Pierre and Miquelon", "PM", "SPM", 666));
collection.Add(new ISO3166Country("Saint Vincent and the Grenadines", "VC", "VCT", 670));
collection.Add(new ISO3166Country("Samoa", "WS", "WSM", 882));
collection.Add(new ISO3166Country("San Marino", "SM", "SMR", 674));
collection.Add(new ISO3166Country("Sao Tome and Principe", "ST", "STP", 678));
collection.Add(new ISO3166Country("Saudi Arabia", "SA", "SAU", 682));
collection.Add(new ISO3166Country("Senegal", "SN", "SEN", 686));
collection.Add(new ISO3166Country("Serbia", "RS", "SRB", 688));
collection.Add(new ISO3166Country("Seychelles", "SC", "SYC", 690));
collection.Add(new ISO3166Country("Sierra Leone", "SL", "SLE", 694));
collection.Add(new ISO3166Country("Singapore", "SG", "SGP", 702));
collection.Add(new ISO3166Country("Sint Maarten (Dutch part)", "SX", "SXM", 534));
collection.Add(new ISO3166Country("Slovakia", "SK", "SVK", 703));
collection.Add(new ISO3166Country("Slovenia", "SI", "SVN", 705));
collection.Add(new ISO3166Country("Solomon Islands", "SB", "SLB", 90));
collection.Add(new ISO3166Country("Somalia", "SO", "SOM", 706));
collection.Add(new ISO3166Country("South Africa", "ZA", "ZAF", 710));
collection.Add(new ISO3166Country("South Georgia and the South Sandwich Islands", "GS", "SGS", 239));
collection.Add(new ISO3166Country("South Sudan", "SS", "SSD", 728));
collection.Add(new ISO3166Country("Spain", "ES", "ESP", 724));
collection.Add(new ISO3166Country("Sri Lanka", "LK", "LKA", 144));
collection.Add(new ISO3166Country("Sudan", "SD", "SDN", 729));
collection.Add(new ISO3166Country("Suriname", "SR", "SUR", 740));
collection.Add(new ISO3166Country("Svalbard and Jan Mayen", "SJ", "SJM", 744));
collection.Add(new ISO3166Country("Swaziland", "SZ", "SWZ", 748));
collection.Add(new ISO3166Country("Sweden", "SE", "SWE", 752));
collection.Add(new ISO3166Country("Switzerland", "CH", "CHE", 756));
collection.Add(new ISO3166Country("Syrian Arab Republic", "SY", "SYR", 760));
collection.Add(new ISO3166Country("Taiwan, Province of China[a]", "TW", "TWN", 158));
collection.Add(new ISO3166Country("Tajikistan", "TJ", "TJK", 762));
collection.Add(new ISO3166Country("Tanzania, United Republic of", "TZ", "TZA", 834));
collection.Add(new ISO3166Country("Thailand", "TH", "THA", 764));
collection.Add(new ISO3166Country("Timor-Leste", "TL", "TLS", 626));
collection.Add(new ISO3166Country("Togo", "TG", "TGO", 768));
collection.Add(new ISO3166Country("Tokelau", "TK", "TKL", 772));
collection.Add(new ISO3166Country("Tonga", "TO", "TON", 776));
collection.Add(new ISO3166Country("Trinidad and Tobago", "TT", "TTO", 780));
collection.Add(new ISO3166Country("Tunisia", "TN", "TUN", 788));
collection.Add(new ISO3166Country("Turkey", "TR", "TUR", 792));
collection.Add(new ISO3166Country("Turkmenistan", "TM", "TKM", 795));
collection.Add(new ISO3166Country("Turks and Caicos Islands", "TC", "TCA", 796));
collection.Add(new ISO3166Country("Tuvalu", "TV", "TUV", 798));
collection.Add(new ISO3166Country("Uganda", "UG", "UGA", 800));
collection.Add(new ISO3166Country("Ukraine", "UA", "UKR", 804));
collection.Add(new ISO3166Country("United Arab Emirates", "AE", "ARE", 784));
collection.Add(new ISO3166Country("United Kingdom of Great Britain and Northern Ireland", "GB", "GBR", 826));
collection.Add(new ISO3166Country("United States of America", "US", "USA", 840));
collection.Add(new ISO3166Country("United States Minor Outlying Islands", "UM", "UMI", 581));
collection.Add(new ISO3166Country("Uruguay", "UY", "URY", 858));
collection.Add(new ISO3166Country("Uzbekistan", "UZ", "UZB", 860));
collection.Add(new ISO3166Country("Vanuatu", "VU", "VUT", 548));
collection.Add(new ISO3166Country("Venezuela (Bolivarian Republic of)", "VE", "VEN", 862));
collection.Add(new ISO3166Country("Viet Nam", "VN", "VNM", 704));
collection.Add(new ISO3166Country("Virgin Islands (British)", "VG", "VGB", 92));
collection.Add(new ISO3166Country("Virgin Islands (U.S.)", "VI", "VIR", 850));
collection.Add(new ISO3166Country("Wallis and Futuna", "WF", "WLF", 876));
collection.Add(new ISO3166Country("Western Sahara", "EH", "ESH", 732));
collection.Add(new ISO3166Country("Yemen", "YE", "YEM", 887));
collection.Add(new ISO3166Country("Zambia", "ZM", "ZMB", 894));
collection.Add(new ISO3166Country("Zimbabwe", "ZW", "ZWE", 716));
return collection;
}
#endregion
}
/// <summary>
/// Representation of an ISO3166-1 Country
/// </summary>
public class ISO3166Country
{
public ISO3166Country(string name, string alpha2, string alpha3, int numericCode)
{
this.Name = name;
this.Alpha2 = alpha2;
this.Alpha3 = alpha3;
this.NumericCode = numericCode;
}
public string Name { get; private set; }
public string Alpha2 { get; private set; }
public string Alpha3 { get; private set; }
public int NumericCode { get; private set; }
}
上記の答えのいくつかは、O(N)ルックアップの場合です。一度だけ実行する場合は問題ありませんが、通常はプロセスごとに複数回呼び出します。おそらくもっと効率的なものが必要になるでしょう。
var Iso3ToIso2Mapping = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
.Select(ci => new RegionInfo(ci.LCID))
.GroupBy(ri => ri.ThreeLetterISORegionName)
.ToDictionary(g => g.Key, g => g.First().TwoLetterISORegionName);
次に、次のようにして検索を実行できます。
var iso2CountryCode = Iso3ToIso2Mapping["AUS"];
Console.WriteLine(iso2CountryCode);
プリント:
AU
ISO3166
名前、2文字と3文字のコード、および数値コードを含むISO3166国のリストを提供するNugetパッケージ。
記載されているとおり、.NETRegionInfoを使用して試すことができます [〜#〜] here [〜#〜] :
using System;
using System.Globalization;
public class SamplesRegionInfo {
public static void Main() {
// Displays the property values of the RegionInfo for "US".
RegionInfo myRI1 = new RegionInfo( "US" );
Console.WriteLine( " Name: {0}", myRI1.Name );
Console.WriteLine( " DisplayName: {0}", myRI1.DisplayName );
Console.WriteLine( " EnglishName: {0}", myRI1.EnglishName );
Console.WriteLine( " IsMetric: {0}", myRI1.IsMetric );
Console.WriteLine( " ThreeLetterISORegionName: {0}", myRI1.ThreeLetterISORegionName );
Console.WriteLine( " ThreeLetterWindowsRegionName: {0}", myRI1.ThreeLetterWindowsRegionName );
Console.WriteLine( " TwoLetterISORegionName: {0}", myRI1.TwoLetterISORegionName );
Console.WriteLine( " CurrencySymbol: {0}", myRI1.CurrencySymbol );
Console.WriteLine( " ISOCurrencySymbol: {0}", myRI1.ISOCurrencySymbol );
}
}
/*
This code produces the following output.
Name: US
DisplayName: United States
EnglishName: United States
IsMetric: False
ThreeLetterISORegionName: USA
ThreeLetterWindowsRegionName: USA
TwoLetterISORegionName: US
CurrencySymbol: $
ISOCurrencySymbol: USD
*/
Nugetパッケージ「Bia.Countries」をご覧ください
https://github.com/ilyabreev/Bia.Countries よくやった
Bia.Countries.Iso3166.Countries.GetCountryByAlpha2()
仲間の潜入者へ:.NETの世界で与えられた2文字の言語名に対して「デフォルト」の国を導きたいだけの場合(たとえば、「en "=>" [〜 #〜] us [〜#〜] "、" ja "=>" [〜#〜] jp [〜#〜] ")、これはトリック
// Can be read from CultureInfo.Name (or CultureInfo.Parent.Name if using non-generic culture)
var language = "ja"; // Japanese
// Creates "ja-JP" culture
var defaultCulture = CultureInfo.CreateSpecificCulture(language);
// After this, just take the split[1] (careful, check index) to get country code
var split = defaultCulture.Name.Split('-');
私はこれをISO3166コードのみを受け入れるJSライブラリで動作させており、25の言語について、当社のWebサイトはこれを完璧にサポートしています。常にシナリオをテストする
すべての国際国コードと国名のC#クラス
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace International_Country_Name_And_Code
{
public class Class1
{
public string Name { get; set; }
public string ISO { get; set; }
public string Code { get; set; }
string[][] Country = new string[][]
{
new string [] { "Afghanistan", "+93", "AF" },
new string [] { "Albania", "+355", "AL" },
new string [] { "Algeria", "+213", "DZ" },
new string [] { "AmericanSamoa", "+1 684", "AS" },
new string [] { "Andorra", "+376", "AD" },
new string [] { "Angola", "+244", "AO" },
new string [] { "Anguilla", "+1 264", "AI" },
new string [] { "Antigua and Barbuda", "+1268", "AG" },
new string [] { "Argentina", "+54", "AR" },
new string [] { "Armenia", "+374", "AM" },
new string [] { "Aruba", "+297", "AW" },
new string [] { "Australia", "+61", "AU" },
new string [] { "Austria", "+43", "AT" },
new string [] { "Azerbaijan", "+994", "AZ" },
new string [] { "Bahamas", "+1 242", "BS" },
new string [] { "Bahrain", "+973", "BH" },
new string [] { "Bangladesh", "+880", "BD" },
new string [] { "Barbados", "+1 246", "BB" },
new string [] { "Belarus", "+375", "BY" },
new string [] { "Belgium", "+32", "BE" },
new string [] { "Belize", "+501", "BZ" },
new string [] { "Benin", "+229", "BJ" },
new string [] { "Bermuda", "+1 441", "BM" },
new string [] { "Bhutan", "+975", "BT" },
new string [] { "Bosnia and Herzegovina", "+387", "BA" },
new string [] { "Botswana", "+267", "BW" },
new string [] { "Brazil", "+55", "BR" },
new string [] { "British Indian Ocean Territory", "+246", "IO" },
new string [] { "Bulgaria", "+359", "BG" },
new string [] { "Burkina Faso", "+226", "BF" },
new string [] { "Burundi", "+257", "BI" },
new string [] { "Cambodia", "+855", "KH" },
new string [] { "Cameroon", "+237", "CM" },
new string [] { "Canada", "+1", "CA" },
new string [] { "Cape Verde", "+238", "CV" },
new string [] { "Cayman Islands", "+ 345", "KY" },
new string [] { "Central African Republic", "+236", "CF" },
new string [] { "Chad", "+235", "TD" },
new string [] { "Chile", "+56", "CL" },
new string [] { "China", "+86", "CN" },
new string [] { "Christmas Island", "+61", "CX" },
new string [] { "Colombia", "+57", "CO" },
new string [] { "Comoros", "+269", "KM" },
new string [] { "Congo", "+242", "CG" },
new string [] { "Cook Islands", "+682", "CK" },
new string [] { "Costa Rica", "+506", "CR" },
new string [] { "Croatia", "+385", "HR" },
new string [] { "Cuba", "+53", "CU" },
new string [] { "Cyprus", "+537", "CY" },
new string [] { "Czech Republic", "+420", "CZ" },
new string [] { "Denmark", "+45", "DK" },
new string [] { "Djibouti", "+253", "DJ" },
new string [] { "Dominica", "+1 767", "DM" },
new string [] { "Dominican Republic", "+1 849", "DO" },
new string [] { "Ecuador", "+593", "EC" },
new string [] { "Egypt", "+20", "EG" },
new string [] { "El Salvador", "+503", "SV" },
new string [] { "Equatorial Guinea", "+240", "GQ" },
new string [] { "Eritrea", "+291", "ER" },
new string [] { "Estonia", "+372", "EE" },
new string [] { "Ethiopia", "+251", "ET" },
new string [] { "Faroe Islands", "+298", "FO" },
new string [] { "Fiji", "+679", "FJ" },
new string [] { "Finland", "+358", "FI" },
new string [] { "France", "+33", "FR" },
new string [] { "French Guiana", "+594", "GF" },
new string [] { "French Polynesia", "+689", "PF" },
new string [] { "Gabon", "+241", "GA" },
new string [] { "Gambia", "+220", "GM" },
new string [] { "Georgia", "+995", "GE" },
new string [] { "Germany", "+49", "DE" },
new string [] { "Ghana", "+233", "GH" },
new string [] { "Gibraltar", "+350", "GI" },
new string [] { "Greece", "+30", "GR" },
new string [] { "Greenland", "+299", "GL" },
new string [] { "Grenada", "+1 473", "Gd" },
new string [] { "Guadeloupe", "+590", "GP" },
new string [] { "Guam", "+1 671", "GU" },
new string [] { "Guatemala", "+502", "GT" },
new string [] { "Guinea", "+224", "GN" },
new string [] { "Guinea-Bissau", "+245", "GW" },
new string [] { "Guyana", "+595", "GY" },
new string [] { "Haiti", "+509", "HT" },
new string [] { "Honduras", "+504", "HN" },
new string [] { "Hungary", "+36", "HU" },
new string [] { "Iceland", "+354", "IS" },
new string [] { "India", "+91", "IN" },
new string [] { "Indonesia", "+62", "ID" },
new string [] { "Iraq", "+964", "IQ" },
new string [] { "Ireland", "+353", "IE" },
new string [] { "Israel", "+972", "IL" },
new string [] { "Italy", "+39", "IT" },
new string [] { "Jamaica", "+1 876", "JM" },
new string [] { "Japan", "+81", "JP" },
new string [] { "Jordan", "+962", "JO" },
new string [] { "Kazakhstan", "+7 7", "KZ" },
new string [] { "Kenya", "+254", "KE" },
new string [] { "Kiribati", "+686", "KI" },
new string [] { "Kuwait", "+965", "KW" },
new string [] { "Kyrgyzstan", "+996", "KG" },
new string [] { "Latvia", "+371", "LV" },
new string [] { "Lebanon", "+961", "LB" },
new string [] { "Lesotho", "+266", "LS" },
new string [] { "Liberia", "+231", "LR" },
new string [] { "Liechtenstein", "+423", "LI" },
new string [] { "Lithuania", "+370", "LT" },
new string [] { "Luxembourg", "+352", "LU" },
new string [] { "Madagascar", "+261", "MG" },
new string [] { "Malawi", "+265", "MW" },
new string [] { "Malaysia", "+60", "MY" },
new string [] { "Maldives", "+960", "MV" },
new string [] { "Mali", "+223", "ML" },
new string [] { "Malta", "+356", "MT" },
new string [] { "Marshall Islands", "+692", "MH" },
new string [] { "Martinique", "+596", "MQ" },
new string [] { "Mauritania", "+222", "MR" },
new string [] { "Mauritius", "+230", "MU" },
new string [] { "Mayotte", "+262", "YT" },
new string [] { "Mexico", "+52", "MX" },
new string [] { "Monaco", "+377", "MC" },
new string [] { "Mongolia", "+976", "MN" },
new string [] { "Montenegro", "+382", "ME" },
new string [] { "Montserrat", "+1664", "MS" },
new string [] { "Morocco", "+212", "MA" },
new string [] { "Myanmar", "+95", "MM" },
new string [] { "Namibia", "+264", "NA" },
new string [] { "Nauru", "+674", "NR" },
new string [] { "Nepal", "+977", "NP" },
new string [] { "Netherlands", "+31", "NL" },
new string [] { "Netherlands Antilles", "+599", "AN" },
new string [] { "New Caledonia", "+687", "NC" },
new string [] { "New Zealand", "+64", "NZ" },
new string [] { "Nicaragua", "+505", "NI" },
new string [] { "Niger", "+227", "NE" },
new string [] { "Nigeria", "+234", "NG" },
new string [] { "Niue", "+683", "NU" },
new string [] { "Northern Mariana Islands", "+1670", "MP" },
new string [] { "Norway", "+47", "NO" },
new string [] { "Oman", "+968", "OM" },
new string [] { "Pakistan", "+92", "PK" },
new string [] { "Palau", "+680", "PW" },
new string [] { "Panama", "+507", "PA" },
new string [] { "Papua New Guinea", "+675", "PG" },
new string [] { "Paraguay", "+595", "PY" },
new string [] { "Peru", "+51", "PE" },
new string [] { "Philippines", "+63", "PH" },
new string [] { "Poland", "+48", "PL" },
new string [] { "Portugal", "+351", "PT" },
new string [] { "Puerto Rico", "+1939", "PR" },
new string [] { "Qatar", "+974", "QA" },
new string [] { "Romania", "+40", "RO" },
new string [] { "Rwanda", "+250", "RW" },
new string [] { "Samoa", "+685", "WS" },
new string [] { "San Marino", "+378", "SM" },
new string [] { "Saudi Arabia", "+966", "SA" },
new string [] { "Senegal", "+221", "SN" },
new string [] { "Serbia", "+381", "RS" },
new string [] { "Seychelles", "+248", "SC" },
new string [] { "Sierra Leone", "+232", "SL" },
new string [] { "Singapore", "+65", "SG" },
new string [] { "Slovakia", "+421", "SK" },
new string [] { "Slovenia", "+386", "SI" },
new string [] { "Solomon Islands", "+677", "SB" },
new string [] { "South Africa", "+27", "ZA" },
new string [] { "South Georgia and the South Sandwich Islands", "+500", "GS" },
new string [] { "Spain", "+34", "ES" },
new string [] { "Sri Lanka", "+94", "LK" },
new string [] { "Sudan", "+249", "SD" },
new string [] { "Suriname", "+597", "SR" },
new string [] { "Swaziland", "+268", "SZ" },
new string [] { "Sweden", "+46", "SE" },
new string [] { "Switzerland", "+41", "CH" },
new string [] { "Tajikistan", "+992", "TJ" },
new string [] { "Thailand", "+66", "TH" },
new string [] { "Togo", "+228", "TG" },
new string [] { "Tokelau", "+690", "TK" },
new string [] { "Tonga", "+676", "TO" },
new string [] { "Trinidad and Tobago", "+1 868", "TT" },
new string [] { "Tunisia", "+216", "TN" },
new string [] { "Turkey", "+90", "TR" },
new string [] { "Turkmenistan", "+993", "TM" },
new string [] { "Turks and Caicos Islands", "+1 649", "TC" },
new string [] { "Tuvalu", "+688", "TV" },
new string [] { "Uganda", "+256", "UG" },
new string [] { "Ukraine", "+380", "UA" },
new string [] { "United Arab Emirates", "+971", "AE" },
new string [] { "United Kingdom", "+44", "GB" },
new string [] { "United States", "+1", "US" },
new string [] { "Uruguay", "+598", "UY" },
new string [] { "Uzbekistan", "+998", "UZ" },
new string [] { "Vanuatu", "+678", "VU" },
new string [] { "Wallis and Futuna", "+681", "WF" },
new string [] { "Yemen", "+967", "YE" },
new string [] { "Zambia", "+260", "ZM" },
new string [] { "Zimbabwe", "+263", "ZW" },
new string [] { "Åland Islands", "+358", "AX" },
new string [] { "Antarctica", "+672", "AQ" },
new string [] { "Bolivia, Plurinational State of", "+591", "BO" },
new string [] { "Brunei Darussalam", "+673", "BN" },
new string [] { "Cocos (Keeling) Islands", "+61", "CC" },
new string [] { "Congo, The Democratic Republic of the", "+243", "CD" },
new string [] { "Cote d'Ivoire", "+225", "CI" },
new string [] { "Falkland Islands (Malvinas)", "+500", "FK" },
new string [] { "Guernsey", "+44", "GG" },
new string [] { "Holy See (Vatican City State)", "+379", "VA" },
new string [] { "Hong Kong", "+852", "HK" },
new string [] { "Iran, Islamic Republic of", "+98", "IR" },
new string [] { "Isle of Man", "+44", "IM" },
new string [] { "Jersey", "+44", "JE" },
new string [] { "Korea, Democratic People's Republic of", "+850", "KP" },
new string [] { "Korea, Republic of", "+82", "KR" },
new string [] { "Lao People's Democratic Republic", "+856", "LA" },
new string [] { "Libyan Arab Jamahiriya", "+218", "LY" },
new string [] { "Macao", "+853", "MO" },
new string [] { "Macedonia, The Former Yugoslav Republic of", "+389", "MK" },
new string [] { "Micronesia, Federated States of", "+691", "FM" },
new string [] { "Moldova, Republic of", "+373", "MD" },
new string [] { "Mozambique", "+258", "MZ" },
new string [] { "Palestinian Territory, Occupied", "+970", "PS" },
new string [] { "Pitcairn", "+872", "PN" },
new string [] { "Réunion", "+262", "RE" },
new string [] { "Russia", "+7", "RU" },
new string [] { "Saint Barthélemy", "+590", "BL" },
new string [] { "Saint Helena, Ascension and Tristan Da Cunha", "+290", "SH" },
new string [] { "Saint Kitts and Nevis", "+1 869", "KN" },
new string [] { "Saint Lucia", "+1 758", "LC" },
new string [] { "Saint Martin", "+590", "MF" },
new string [] { "Saint Pierre and Miquelon", "+508", "PM" },
new string [] { "Saint Vincent and the Grenadines", "+1 784", "VC" },
new string [] { "Sao Tome and Principe", "+239", "ST" },
new string [] { "Somalia", "+252", "SO" },
new string [] { "Svalbard and Jan Mayen", "+47", "SJ" },
new string [] { "Syrian Arab Republic", "+963", "SY" },
new string [] { "Taiwan, Province of China", "+886", "TW" },
new string [] { "Tanzania, United Republic of", "+255", "TZ" },
new string [] { "Timor-Leste", "+670", "TL" },
new string [] { "Venezuela, Bolivarian Republic of", "+58", "VE" },
new string [] { "Viet Nam", "+84", "VN" },
new string [] { "Virgin Islands, British", "+1 284", "VG" },
new string [] { "Virgin Islands, U.S.", "+1 340", "VI" }
};
}
}