生成不带连字符的 GUID

我在代码中使用以下语句生成 GUID

byte[ ] keyBytes = Encoding.UTF8.GetBytes( Guid.NewGuid( ).ToString( ).Substring( 0, 12 ) );

但是,当生成 GUID 时,我发现它也包含连字符。我如何去生成一个只有字母(大写和小写)和数字的 GUID?我不想要连字符。有人能给我这样的想法吗?

83196 次浏览
Guid.NewGuid().ToString().Replace("-", string.Empty)

注意,您正在讨论的是 Guid 的(规范)字符串表示形式。Guid 本身实际上是一个128位的整数值。

您可以在 Guid.ToString(String)重载时使用“ N”说明符。

Guid.NewGuid().ToString("N");

默认情况下,字母是小写的。只有大写字母的 Guid 只能通过手动将它们全部转换为大写来实现,例如:

Guid.NewGuid().ToString("N").ToUpper();

只有字母或数字的 guid 是没有意义的。一个指导字符串表示是十六进制的,因此总是(很可能)包含两者。