使用不符合GUID格式的字符串生成GUID

19

我希望能够从输入字符串中生成GUID。假设我从用户那里收到了一个GUID,它是:

81a130d2-502f-4cf1-a376-63edeb000e9f

所以我可以这样做:

 Guid g = Guid.Parse("81a130d2-502f-4cf1-a376-63edeb000e9f");

这将成功地进行解析。

但是如何让用户更轻松地输入:

81a130d2502f4cf1a37663edeb000e9f

如果我尝试使用相同的方法,它将抛出异常,因为GUID格式中缺少破折号。

有什么想法吗?


3
需要翻译的内容:How will having to input an unreadable horrible amount of hex chars (a GUID) actually improve users' lives? I really REALLY doubt this...将不可读的、糟糕的十六进制字符(GUID)输入系统,真正能提高用户生活质量吗?我实在是非常怀疑... - Federico Berasategui
好的,在我编写的应用程序中,用户将会以以下格式获得他们设备的GUID:81a130d2502f4cf1a37663edeb000e9f。然后用户需要在另一个文本框中重新输入这个值,所以我不希望他们需要数出应该在哪个位置插入破折号。 - inside
这只是我应用程序的不同设计,需要采用这种格式。 - inside
1
然后创建一个合适的用户界面(由5个用破折号分隔的文本框组成),类似于这个 - Federico Berasategui
3个回答

46
试试看。
Guid.ParseExact("81a130d2502f4cf1a37663edeb000e9f", "N");

23

除了使用第二个参数为"N"ParseExact方法之外,您还可以使用接受字符串参数的Guid构造函数重载;它允许您指定不带破折号的值。

Guid g = new Guid("81a130d2502f4cf1a37663edeb000e9f");

7
使用ParseExact方法:ParseExact
Guid.ParseExact("81a130d2502f4cf1a37663edeb000e9f","N")

1
感谢提供 MSDN 链接。 - sobelito

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接