int
CultureInfo の有効な 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 検証を確認するにはどうすればよいですか?