.NET GUID大写字符串格式

时间:2011-07-29 03:22:48

标签: formatting guid string-formatting

我需要以虚线格式格式化我的GUID,全部大写。我知道使用myGuid.ToString("D")String.Format("{0:D}", myGuid)给出了虚线格式,但使用大写D而不是小写d并没有像我一样给我一个大写的GUID以为会。有没有办法在不做任何事情的情况下做到这一点,或者我只需要拨打myGuid.ToString().ToUpper()

4 个答案:

答案 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();