generazione di GUID senza trattino


104

Sto generando un GUID utilizzando la seguente dichiarazione nel mio codice

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

Ma, quando viene generato un GUID, trovo che contenga anche il carattere trattino. Come posso generare un GUID con solo lettere (maiuscole e minuscole) e numeri? Non voglio il trattino. Qualcuno può darmi un'idea così?

Risposte:


273

Nota che stai parlando della rappresentazione di stringa (canonica) di un Guid. Il Guid stesso è in realtà un valore intero a 128 bit.

È possibile utilizzare l'identificatore "N" con l' Guid.ToString(String)overload.

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

Per impostazione predefinita, le lettere sono minuscole. Un Guid con solo lettere maiuscole può essere ottenuto solo convertendole manualmente tutte in maiuscolo, ad esempio:

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

Un GUID composto solo da lettere o cifre non ha senso. Una rappresentazione della stringa guid è esadecimale e quindi sempre (molto probabilmente) conterrà entrambi.


è possibile creare un GUID con caratteri maiuscoli e minuscoli insieme a numeri ???
Harish Kumar

7
@HarishKumar Questo non ha senso. La stringa GUID è un numero esadecimale. In quella notazione "a" è uguale a "A". Anche se per questo motivo puoi stampare ogni lettera nell'involucro che desideri (ma non vedo davvero alcun punto in questo).
Christian.K

ma quello che desidero avere è una stringa guid, che è un misto di lettere minuscole, maiuscole e numeri ... posso ottenere questo ordinamento ???
Harish Kumar

7
@HarishKumar Come decidereste quali lettere dovrebbero essere maiuscole e quali minuscole? Ovviamente sei libero di usarlo string.Replace(char, char)per raggiungere questo obiettivo, ma in realtà è inutile e non necessario. Considera la possibilità di pubblicare una nuova domanda e prova a chiedere cosa vuoi veramente ottenere: sembra essere qualcosa di più che eliminare i trattini nelle stringhe GUID.
Christian.K

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

20
Anche se questo farà il lavoro, se non altro, è un lavoro extra (e molto probabilmente un'allocazione di stringhe non necessaria).
Christian.K
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.