首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何不使用try\catch块检查LCID的验证?

如何不使用try\catch块检查LCID的验证?
EN

Stack Overflow用户
提问于 2015-04-27 07:28:27
回答 1查看 465关注 0票数 1

有些类型有TryParse方法,例如它是Int32Int64Boolean等等。它允许检查字符串值而不使用try\catch块。当在一个周期中处理许多不正确的值时,它对生产率有很大的影响。我需要对LCID的字符串值执行同样的操作。但是CultureInfo类没有TryParse方法。

代码语言:javascript
复制
CultureInfo culture = null;
try {
  culture = CultureInfo.GetCultureInfo(Convert.ToInt32(lcid, 16));
}
catch {
}

我如何重写这段代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-27 07:36:42

您可以在字典中通过LCID缓存所有CultureInfo对象:

代码语言:javascript
复制
var culturesByLcid = CultureInfo
    .GetCultures(CultureTypes.AllCultures)
    .ToDictionary(c => c.LCID, c => c);

并使用TryGetValue,如:

代码语言:javascript
复制
CultureInfo found;
if (culturesByLcid.TryGetValue(lcid, out found))
{
    ...
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29889681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档