生成没有连字符的GUID

时间:2012-01-16 08:45:43

标签: c# winforms

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

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

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

2 个答案:

答案 0 :(得分:227)

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

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

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

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

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

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

答案 1 :(得分:1)

Guid.NewGuid().ToString().Replace("-", string.Empty)