generando GUID sin guion

104

Estoy generando un GUID usando la siguiente declaración en mi código

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

Pero, cuando se genera un GUID, encuentro que también contiene el carácter de guión. ¿Cómo hago para generar un GUID con solo letras (mayúsculas y minúsculas) y números? No quiero el guion. ¿Alguien puede darme esa idea?

Harish Kumar
fuente

Respuestas:

273

Tenga en cuenta que está hablando de la representación de cadena (canónica) de un Guid. El Guid en sí es en realidad un valor entero de 128 bits.

Puede utilizar el especificador "N" con la Guid.ToString(String)sobrecarga.

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

Por defecto, las letras están en minúsculas. Un Guid con solo letras mayúsculas solo se puede lograr convirtiéndolos manualmente a mayúsculas, por ejemplo:

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

Una guía con solo letras o dígitos no tiene sentido. Una representación de cadena de guid es hexadecimal y, por lo tanto, siempre (lo más probable) contendrá ambos.

Christian.K
fuente
¿Es posible crear un GUID con caracteres en mayúsculas y minúsculas junto con números?
Harish Kumar
7
@HarishKumar Eso no tiene sentido. La cadena GUID es un número hexadecimal. En esa notación, 'a' es lo mismo que 'A'. Aunque por eso puedes imprimir cada letra en la carcasa que quieras (pero realmente no veo ningún sentido en eso).
Christian.K
pero lo que deseo tener es una cadena de guid, que es una mezcla de minúsculas, mayúsculas y números ... ¿puedo lograr esta clasificación ???
Harish Kumar
7
@HarishKumar ¿Cómo decidirías qué letras deben ser mayúsculas y cuáles deben ser minúsculas? Por supuesto, es libre de usar string.Replace(char, char)para lograrlo, pero realmente no tiene sentido e innecesario. Considere publicar una nueva pregunta e intente preguntar qué es lo que realmente quiere lograr; parece ser más que simplemente deshacerse de los guiones en las cadenas GUID.
Christian.K
0
Guid.NewGuid().ToString().Replace("-", string.Empty)
Bonshington
fuente
20
Si bien esto hará el trabajo, al menos, es un trabajo adicional (y probablemente una asignación de cadena innecesaria).
Christian.K