知道字符串是long还是Guid的最佳方法是什么?

时间:2012-02-02 13:02:26

标签: c# .net parsing guid long-integer

我在表示对象id的文本文件中有一些字符串,有时id是long而另一个是Guid,我需要解析它们。

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

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

提前致谢。

1 个答案:

答案 0 :(得分:14)

  

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

没有。 long.TryParseGuid.TryParse是可行的方法。另一种可能性是测试字符串是否包含-但不包含在开头:

someString.IndexOf("-") > 1

这强烈表明此字符串不是Int64。它可能是一个Guid。但它可能是其他任何东西。当然,如果你知道在这个文件中只能有Guids和longs,那么这可能是一个很好的指示。