我需要将我的 GUID 格式化为虚线格式,全部大写。我知道使用 myGuid.ToString("D")
或 String.Format("{0:D}", myGuid)
给出虚线格式,但使用大写 D
而不是小写的 d
并没有像我想象的那样给我一个大写的 GUID。有没有办法做到这一点而不做任何疯狂的事情,或者我只需要调用 myGuid.ToString().ToUpper()
?
最佳答案
请注意 RFC 4122 ,它定义了 UUID 规范,规定在将结构转换为字符串时,输出的十六进制字符应该是小写的:
The hexadecimal values "a" through "f" are output as
lower case characters and are case insensitive on input.
这可以解释为什么 Guid 结构不支持直接输出为大写字符串。
由于 ToString 格式提供程序参数被忽略,唯一的替代方法(不简单地将字符串转换为大写)是直接操作字节,同时注意保持字节顺序。简单地转换为大写(直接或通过扩展方法)可能要简单得多。
https://stackoverflow.com/questions/6868300/