生成没有连字符的GUID

Har*_*mar 94 c# winforms

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

byte[ ] keyBytes = Encoding.UTF8.GetBytes( Guid.NewGuid( ).ToString( ).Substring( 0, 12 ) );
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*n.K 254

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

您可以将"N"说明符与Guid.ToString(String)重载一起使用.

Guid.NewGuid().ToString("N");
Run Code Online (Sandbox Code Playgroud)

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

Guid.NewGuid().ToString("N").ToUpper();
Run Code Online (Sandbox Code Playgroud)

只带字母或数字的guid毫无意义.guid字符串表示是十六进制的,因此总是(最有可能)包含两者.

  • @HarishKumar这没有任何意义.GUID字符串是十六进制数字.在该表示法中,'a'与'A'相同.虽然因为你可以打印你想要的外壳中的每个字母(但我真的没有看到这一点). (7认同)
  • @HarishKumar你会如何决定哪些字母应该是上面的哪个字母应该是小写的?您当然可以自由地使用`string.Replace(char,char)`来实现这一点,但实际上它是毫无意义且不必要的.考虑发布一个新问题并试着询问你真正想要实现的目标 - 它似乎不仅仅是在GUID字符串中删除连字符. (7认同)