私は次のことを行うことで取得できるようにしたいRegionInfo
:
new RegionInfo("United Kingdom");
しかし、これは例外をスローし、認識されていないと言います。
RegionInfo のこのページには、「名前が有効な国/地域名ではない」場合に例外がスローされることが記載されています。
それでも、このページでは、 と を含むクラスで使用される事前定義された地域のリストを指定してUnited Kingdom
いRegionInfo
ます。
var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID));
var englishRegion = regions.FirstOrDefault(region => region.EnglishName.Contains(name));
RegionInfo
国名で取得したい場合は、 を取得してから、上記IEnumerable<RegionInfo>
の に基づいてフィルター処理できますEnglishName
。これにより、コンボボックスなどにもデータを入力することができます。
リンクした同じページにも次のように書かれています:
RegionInfo 名は、国/地域に対して ISO 3166 で定義されている 2 文字のコードの 1 つです。大文字と小文字は区別されません。ただし、Name、TwoLetterISORegionName、および ThreeLetterISORegionName プロパティは、適切なコードを大文字で返します。
コードはページにありGB
、英国の 2 文字のコードのようです (検索が難しいようにコード順です!)。だからこれを試してください:
new RegionInfo("GB");
または、.NET 2.0 以降を使用している場合は、完全なカルチャ名を使用することをお勧めします。
new RegionInfo("en-GB");
MSDNから;
ISO 3166 で定義されている国/地域の 2 文字のコードを含む文字列。
UNITED KINGDOM
ISO Webサイトの国名とコード要素では問題ないようです。
GB イギリス
試してみてください;
new RegionInfo("GB");
コンストラクターに移動すると、Visual Studio に表示される概要には次のように表示されます。
name : ISO 3166 で定義されている国/地域の 2 文字のコードを含む文字列。または、特定のカルチャ、カスタム カルチャ、または Windows のみのカルチャのカルチャ名を含む文字列。カルチャ名が RFC 4646 形式でない場合、アプリケーションは国/地域だけでなく、カルチャ名全体を指定する必要があります。
カルチャ名全体は「en-GB」になります。
または、「GB」を使用できます
MSDN ページを見てください。
A string containing one of the two-letter codes defined in ISO 3166 for country/region.
国名ではなく、英国の ISO 3166 コードが必要です。
必要なコードは次のとおりです。
name
.NET Framework 2.0 からの変更を説明するパラメーターのメタデータからのこのコメントに注意してください。
// A string containing one of the two-letter codes defined in ISO 3166 for country/region.-or-Beginning
// in .NET Framework version 2.0, a string containing the culture name for a
// specific culture, custom culture, or Windows-only culture. If the culture
// name is not in RFC 4646 format, your application should specify the entire
// culture name, not just the country/region.