生成不带连字符的GUID

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

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

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

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

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

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

默认情况下,字母是小写字母。 一个只有大写字母的Guid只能手动将它们全部转换成大写,例如:

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

只有字母或数字的guid是没有意义的。 guidstring表示是hex的,因此将永远(很可能)包含两者。

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