2012-02-02 63 views
1

我在代表对象ID的文本文件中有一些字符串,有时候这个ID很长,其他的是Guid,我需要解析它们。什么是最好的方法来知道一个字符串是一个长或Guid?

快速回答很明显,例如试图解析一个Guid,如果失败,尝试解析一个很长的,但是。有没有什么好的方法(优雅的解决方案)知道某个字符串是长的还是Guid?

ee02b525-9755-4a07-a46d-37bb5b060fd2 (Guid) 
    -48765 (long) 

在此先感谢。

回答

14

快速回答是显而易见的,例如试图解析一个Guid,如果失败,尝试解析一个long,但是。有没有什么好的方法(优雅的 解决方案)知道某个字符串是长的还是Guid?

long.TryParseGuid.TryParse是要走的路。另一种可能性是测试如果字符串包含-但不是在开头:

someString.IndexOf("-") > 1 

这是一个强烈的信号,这个字符串不是一个Int64。它可能是一个Guid。但它可能是其他任何东西。当然,如果你知道在这个文件中只能有Guid和longs,它可能是一个强有力的指示。

相关问题