我需要将我的GUID格式化为虚线格式,全部大写。我知道使用myGuid.ToString("D")或String.Format("{0:D}", myGuid)会得到虚线格式,但是使用大写的D而不是小写的d并不会像我想象的那样给出一个大写的GUID。有没有办法做到这一点而不做任何疯狂的事情,或者我只需要调用myGuid.ToString().ToUpper()
发布于 2011-07-29 12:22:06
我只需要调用
myGuid.ToString().ToUpper()吗
是啊。您可以努力创建一个自定义的IFormatProvider,但在这里似乎不值得这样做。
发布于 2011-07-29 13:45:42
请注意,定义UUID规范的RFC 4122规定,在将结构转换为字符串时,输出十六进制字符应为小写:
The hexadecimal values "a" through "f" are output as
lower case characters and are case insensitive on input.这可能解释了为什么Guid结构不支持直接作为大写字符串输出。
由于忽略了ToString格式提供程序参数,因此唯一的替代方法(不需要简单地将字符串转换为大写)将是直接操作字节,同时注意保留字节顺序。简单地转换为大写(直接或通过扩展方法)可能要简单得多。
发布于 2011-07-29 11:34:54
我认为除了使用myGuid.ToString().ToUpper()之外,您别无选择。虽然,你可以总是写一个扩展方法,也许像ToUpperString,但是我不认为系统中内置了任何东西。
https://stackoverflow.com/questions/6868300
复制相似问题