2013-05-24 18 views
8

Chciałbym wygenerować identyfikator GUID z ciągu wejściowego. Powiedzmy mam GUID otrzymał od użytkownika, który jestGenerowanie identyfikatora GUID z łańcucha, który nie ma formatu GUID

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

więc mogę zrobić:

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

który będzie skutecznie analizować.

Ale jak uczynić życie autora łatwiejsze i pozwala na wejście:

81a130d2502f4cf1a37663edeb000e9f 

który bez kresek, a jeszcze przekształcić go GUID.

Jeśli spróbuję użyć tej samej metody, wyrzuci ona wyjątek narzekający na brakujący przerywnik w formacie guid.

Wszelkie pomysły?

+3

W jaki sposób wpisanie nieczytelnej, straszliwej ilości znaków szesnastkowych (GUID) rzeczywiście poprawi jakość życia użytkowników? Naprawdę NAPRAWDĘ wątpię w to ... –

+0

cóż, w aplikacji piszę użytkownik otrzyma GUID swojego urządzenia w tym formacie 81a130d2502f4cf1a37663edeb000e9f. Następnie użytkownik będzie musiał ponownie wpisać tę wartość w innym polu tekstowym, więc nie chcę, aby liczyć, w której pozycji musi być wstawiony przerywany – inside

+0

to tylko inny projekt mojej aplikacji, który musi mieć ten format – inside

Odpowiedz

17

Spróbuj

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

ładne, dzięki !!! – inside

4

Użyj metody ParseExact:

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

Dzięki za link MSDN. – sobelito

11

The oprócz ParseExact (z "N" jako drugi argument), można zamiast tego użyć przeciążenie konstruktora Guid który akceptuje ciąg; pozwala określić wartość bez kresek.

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

Łatwiejsza do zapamiętania niż zaakceptowana odpowiedź! –