从不是guid格式的字符串生成GUID

ins*_*ide 12 c# parsing guid .net-4.0

我想从输入字符串生成GUID.假设我收到了来自用户的guid

81a130d2-502f-4cf1-a376-63edeb000e9f
Run Code Online (Sandbox Code Playgroud)

所以我可以这样做:

 Guid g = Guid.Parse("81a130d2-502f-4cf1-a376-63edeb000e9f");
Run Code Online (Sandbox Code Playgroud)

这将成功解析.

但是如何让用户的生活更轻松,并允许输入:

81a130d2502f4cf1a37663edeb000e9f
Run Code Online (Sandbox Code Playgroud)

没有破折号,仍然将其转换为guid.

如果我将尝试使用相同的方法,它将抛出异常抱怨guid格式中丢失的虚线.

有任何想法吗?

Dan*_*ite 26

尝试

Guid.ParseExact("81a130d2502f4cf1a37663edeb000e9f", "N");
Run Code Online (Sandbox Code Playgroud)


mlo*_*ske 16

除了ParseExact("N"作为第二个参数),您可以改为使用Guid接受字符串的构造函数的重载; 它允许您指定您的值而不用破折号.

Guid g = new Guid("81a130d2502f4cf1a37663edeb000e9f");
Run Code Online (Sandbox Code Playgroud)


Joh*_*ner 6

使用ParseExact方法:

Guid.ParseExact("81a130d2502f4cf1a37663edeb000e9f","N")
Run Code Online (Sandbox Code Playgroud)