我需要以虚线格式格式化我的GUID,全部大写。我知道使用myGuid.ToString("D")
或String.Format("{0:D}", myGuid)
给出了虚线格式,但使用大写D
而不是小写d
并没有像我一样给我一个大写的GUID以为会。有没有办法在不做任何事情的情况下做到这一点,或者我只需要拨打myGuid.ToString().ToUpper()
?
答案 0 :(得分:15)
请注意,RFC 4122定义了UUID规范,规定在将结构转换为字符串时,输出十六进制字符应为小写:
The hexadecimal values "a" through "f" are output as
lower case characters and are case insensitive on input.
这可以解释为什么Guid结构不支持直接输出为大写字符串。
由于ToString格式提供程序参数被忽略,唯一的替代方法(不简单地将字符串转换为大写)将直接操作字节,同时注意保留字节序。简单地转换为大写(直接或通过扩展方法)可能要简单得多。
答案 1 :(得分:12)
我只需要致电
myGuid.ToString().ToUpper()
是的。你可以去创建一个自定义的IFormatProvider,但这似乎不值得。
答案 2 :(得分:1)
我认为除了做myGuid.ToString().ToUpper()
之外别无其他选择。虽然,你总是可以编写一个扩展方法,也许类似ToUpperString
,但我不认为系统中有任何内置。
答案 3 :(得分:0)
假设你有一个持有你的Guid的课程并且你想保留打字的Guid,你可以这样做:
public Guid Identifier { get; set; }
public String FormattedIdentifier => Identifier.ToString().ToUpper();