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

Dan*_*lba 1 .net c# parsing guid long-integer

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

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

  ee02b525-9755-4a07-a46d-37bb5b060fd2 (Guid)
  -48765 (long)
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Dar*_*rov 14

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

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

someString.IndexOf("-") > 1
Run Code Online (Sandbox Code Playgroud)

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