0

intCultureInfo の有効な LCID である値を取得することを確認する必要があります。残念ながら、メソッドCultureInfoのようなものは含まれていません。bool TryGetCultureInfo(int, out CultureInfo)また、いくつかのCultureInfoアイテムが同じものを持っていることがわかりLCIDます。

だから私はこのように使うことができます:

var lcids = CultureInfo.GetCultures(CultureTypes
    .AllCultures).Select(c => c.LCID).OrderBy(
    c => c).ToArray(); // it contains duplicates

HashSet<int> repeated = new HashSet<int>();

for (int i = 1; i < lcids.Length; i++) {
    if (lcids[i] == lcids[i - 1]) {
        repeated.Add(lcids[i]);
    }
}

foreach (var item in repeated) {
    Console.WriteLine(item);
}

出力:

4
4096
31748

変数にチェックされた値が含まれているかどうかを確認できrepeatedますが、それは私には悪いようです...また、ブロック内でコンストラクターを使用しようとすることもtry\catchできますが、反復で使用され、速度が低下する可能性があるため、悪い方法です。

try\catchブロックなしで、前に示したコードなしでLCID 検証を確認するにはどうすればよいですか?

4

0 に答える 0