CultureInfo, RegionInfo を使って国名(台湾・香港なども含む)の一覧を取得します。アプリで国籍の選択などに使えるかなと。
GetCultures でカルチャを取得し、LCID(ロケールID)プロパティを使って RegionInfo を生成します。Name プロパティが2文字のオブジェクトのみ使います。2文字の値は、ISO 3166 の国名コードです。2文字以外の値には “001” (世界)・"029" (カリブ)・"419" (ラテン アメリカ) があります。
var names = CultureInfo .GetCultures(CultureTypes.SpecificCultures) .Where(c => c.LCID != 4096 /* LOCALE_CUSTOM_UNSPECIFIED を除く */) .Select(c => new RegionInfo(c.LCID)) .Where(r => r.Name.Length == 2) .Distinct() .OrderBy(r => r.DisplayName) .ToDictionary(r => r.Name, r => r.DisplayName);
Windows 10 で実行した結果です。139件ありました。
すべての国が定義されているわけではないようです。CultureInfo.CreateSpecificCulture Method (String) (System.Globalization) の Remarks によると、Windows で定義されている一覧は [MS-LCID]: Appendix A: Product Behavior で参照できます。
参考として Wikipedia の 国の一覧 - Wikipedia では206ヶ国掲載されています。日本政府が承認した国家数は195ヶ国(日本除く)です。
他のサービスの国数も調べてみました。
- Microsoft アカウントの国/地域は、254個
- Google アカウントの国/地域は、255個
- Tiwtter プロフィールの国は、155個と「世界中」