C# 生成不带连字符的GUID

C# 生成不带连字符的GUID,c#,winforms,C#,Winforms,我正在代码中使用以下语句生成GUID byte[ ] keyBytes = Encoding.UTF8.GetBytes( Guid.NewGuid( ).ToString( ).Substring( 0, 12 ) ); 但是,当生成GUID时,我发现它也包含连字符。如何生成只包含字母(大写和小写)和数字的GUID?我不要连字符。有人能告诉我这样的想法吗?请注意,您所说的是Guid的(规范的)字符串表示。Guid本身实际上是一个128位整数值 Guid.NewGuid().ToString(

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

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

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

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

Guid.NewGuid().ToString().Replace("-", string.Empty)
可以将“N”说明符与重载一起使用

Guid.NewGuid().ToString("N");
默认情况下,字母为小写。只有手动将大写字母全部转换为大写字母才能实现仅包含大写字母的Guid,例如:

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

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

是否可以创建一个同时包含大小写字符和数字的guid???@HarishKumar,这毫无意义。GUID字符串是十六进制数。在该符号中,“a”与“a”相同。虽然正因为如此,你可以用你想要的大小写打印每个字母(但我真的看不出这有什么意义)。但我想要的是一个guid字符串,它是小写、大写和数字的混合体……我可以实现dis排序吗???@HarishKumar你如何决定哪些字母应该是大写的,哪些应该是小写的?当然,您可以自由地使用
string.Replace(char,char)
来实现这一点,但实际上这是毫无意义和不必要的。考虑发布一个新的问题并尝试询问你真正想要达到的目标-它似乎不仅仅是摆脱字符串中的连字符,而这将完成这项工作,如果没有别的,那就是额外的工作(并且很可能是一个不必要的字符串分配)。