如何验证LCID是否合适?

时间:2016-10-11 14:41:26

标签: c# .net cultureinfo lcid

我需要检查我是否获得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

我可以检查wether repeated变量是否包含已检查的值,但它对我来说似乎不好...我也可以尝试在try\catch块内部使用构造函数但是它是不好的方法,因为它会在迭代中使用并可以降低速度。

如何在没有try\catch阻止且没有我之前显示的代码的情况下检查LCID验证?

0 个答案:

没有答案