. net GUID大写字符串格式



我需要用虚线格式格式化guid,全部大写。我知道使用myGuid.ToString("D")String.Format("{0:D}", myGuid)会给出虚线格式,但是使用大写的D而不是小写的d不会像我想象的那样给我一个大写的GUID。有没有一种方法可以做到这一点,而不做任何疯狂的事情,或者我只需要调用myGuid.ToString().ToUpper() ?

注意,定义了UUID规范的RFC 4122规定,在将结构转换为字符串时,输出的十六进制字符应该是小写的:

  The hexadecimal values "a" through "f" are output as
  lower case characters and are case insensitive on input.

这也许可以解释为什么Guid结构不支持直接作为大写字符串输出。

由于ToString格式提供程序参数被忽略,唯一的替代方法(不简单地将字符串转换为大写)将是直接操作字节,同时注意保留端序。简单地转换为大写(直接或通过扩展方法)可能更直接。

我是否只需要调用myGuid.ToString().ToUpper()

是的。您可以创建一个自定义的IFormatProvider,但在这里似乎不值得这样做。

我认为你除了做myGuid.ToString().ToUpper()没有其他选择。虽然,您总是可以编写一个扩展方法,也许是ToUpperString之类的东西,但我认为系统中没有内置任何东西。

假设您有一个保存Guid的类,并且您希望保留类型化的Guid,您可以这样做:

public Guid Identifier { get; set; }
public String FormattedIdentifier => Identifier.ToString().ToUpper();

相关内容

  • 没有找到相关文章

最新更新