首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查字符串是否可以解析的最快方法

检查字符串是否可以解析的最快方法
EN

Stack Overflow用户
提问于 2013-05-30 20:09:51
回答 5查看 11.3K关注 0票数 19

我正在将CSV文件解析为具有强类型属性的对象列表。这涉及到使用IConvertible将文件中的每个字符串值解析为decimal类型(intdecimaldoubleDateTime等)。

我使用try catch来处理解析失败的情况。然后记录此异常发生的位置和原因的确切详细信息,以供进一步调查。以下是实际的解析代码:

代码语言:javascript
复制
try
{
    parsedValue = TypeDescriptor.GetConverter(type).ConvertFromString(dataValue);
}
catch (Exception ex)
{
    // Log failure
}

问题:

当值被成功解析时,这个过程会很快。当解析包含大量无效数据的数据时,该过程可能会慢数千倍(由于捕获了异常)。

我一直在通过解析DateTime来测试这一点。以下是性能数据:

  • 成功解析: average of 32 ticks per parse
  • Failed parsing: average of 146296 ticks per parse

这比以前慢了4500倍。

问题:

是否可以检查字符串值是否可以成功解析,而不必使用代价高昂的try catch方法?或者,也许我应该用另一种方式来做这件事?

编辑:我需要使用 DateTime.TryParse**) (而不是DateTime.TryParse**),因为类型是在运行时确定的。**

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16835750

复制
相关文章

相似问题

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