我在表示对象id的文本文件中有一些字符串,有时id是long而另一个是Guid,我需要解析它们。
快速回答很明显,例如尝试解析Guid,如果失败,尝试解析一个long,但是。有没有什么好的方法(优雅的解决方案)知道某个字符串是长字还是Guid?
ee02b525-9755-4a07-a46d-37bb5b060fd2 (Guid)
-48765 (long)
提前致谢。
答案 0 :(得分:14)
快速回答很明显,例如试图解析Guid及其 如果失败,试着解析一下,但是。有什么好方法(优雅 解决方案)知道某个字符串是长字还是Guid?
没有。 long.TryParse和Guid.TryParse是可行的方法。另一种可能性是测试字符串是否包含-
但不包含在开头:
someString.IndexOf("-") > 1
这强烈表明此字符串不是Int64。它可能是一个Guid。但它可能是其他任何东西。当然,如果你知道在这个文件中只能有Guids和longs,那么这可能是一个很好的指示。