2013-05-24 6 views
8

Vorrei generare un GUID dalla stringa di input. Diciamo che ho GUID ricevuto da parte dell'utente, che èGenera GUID da una stringa che non è in formato guid

81a130d2-502f-4cf1-a376-63edeb000e9f 

così posso fare:

Guid g = Guid.Parse("81a130d2-502f-4cf1-a376-63edeb000e9f"); 

che sta per analizzare correttamente.

Ma come rendere la vita degli utenti più facile e consentono di inserire:

81a130d2502f4cf1a37663edeb000e9f 

che è senza trattini, ed ancora convertirlo in GUID.

Se tenterò di utilizzare lo stesso metodo, verrà lanciata l'eccezione che si lamenta per il mancato tratteggio nel formato guid.

Qualche idea?

+3

In che modo l'immissione di una quantità orribile illeggibile di caratteri esadecimali (un GUID) può effettivamente migliorare la vita degli utenti? Dubito davvero che questo ... –

+0

bene, nell'app che sto scrivendo l'utente otterrà GUID del proprio dispositivo in questo formato 81a130d2502f4cf1a37663edeb000e9f. Quindi l'utente dovrà reinserire questo valore in un'altra casella di testo, quindi non voglio che contengano a quale posizione tratteggiata debba essere inserito – inside

+0

è solo una diversa progettazione della mia app che deve avere questo formato – inside

risposta

17

Prova

Guid.ParseExact("81a130d2502f4cf1a37663edeb000e9f", "N"); 
+0

bello, grazie !!! – inside

4

Utilizzare il metodo ParseExact:

Guid.ParseExact("81a130d2502f4cf1a37663edeb000e9f","N") 
+0

Grazie per il collegamento MSDN. – sobelito

11

L'oltre a ParseExact (con "N" come secondo argomento), si potrebbe invece utilizzare il sovraccarico del Guid costruttore che accetta una stringa; ti permette di specificare il tuo valore anche senza trattini.

Guid g = new Guid("81a130d2502f4cf1a37663edeb000e9f"); 
+0

Più facile da ricordare rispetto alla risposta accettata! –