menghasilkan GUID tanpa tanda hubung


104

Saya membuat GUID menggunakan pernyataan berikut di kode saya

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

Tapi, ketika GUID dibuat, saya menemukan bahwa itu berisi karakter tanda hubung juga. Bagaimana cara membuat GUID dengan hanya huruf (huruf besar dan kecil) dan angka? Saya tidak ingin tanda hubung. Bisakah seseorang memberi saya ide begitu?

Jawaban:


273

Perhatikan bahwa Anda berbicara tentang representasi string (kanonik) dari sebuah Panduan. Panduan itu sendiri sebenarnya adalah nilai integer 128-bit.

Anda dapat menggunakan penentu "N" dengan Guid.ToString(String)kelebihan beban.

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

Secara default, huruf adalah huruf kecil. Panduan dengan hanya huruf besar hanya dapat dicapai dengan mengubah semuanya secara manual menjadi huruf besar, contoh:

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

Panduan dengan hanya huruf atau angka tidak masuk akal. Representasi string guid adalah heksadesimal, dan karenanya akan selalu (kemungkinan besar) berisi keduanya.


apakah mungkin untuk membuat GUID dengan karakter huruf besar dan kecil bersama dengan angka ???
Harish Kumar

7
@HarishKumar Itu tidak masuk akal. String GUID adalah angka heksadesimal. Dalam notasi itu 'a' sama dengan 'A'. Meskipun karena itu Anda dapat mencetak setiap huruf di casing yang Anda inginkan (tapi saya benar-benar tidak melihat ada gunanya).
Christian.K

tetapi apa yang saya ingin miliki adalah string guid, yang merupakan campuran huruf kecil, huruf besar dan angka ... dapatkah saya mencapai dis sort ???
Harish Kumar

7
@HarishKumar Bagaimana Anda memutuskan huruf mana yang harus lebih besar dan mana yang harus huruf kecil? Anda tentu saja bebas menggunakan string.Replace(char, char)untuk mencapai itu, tetapi sebenarnya itu tidak ada gunanya dan tidak perlu. Pertimbangkan untuk memposting pertanyaan baru dan coba tanyakan apa yang sebenarnya ingin Anda capai - ini tampaknya lebih dari sekadar menghilangkan tanda hubung dalam string GUID.
Christian.K

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

20
Meskipun ini akan melakukan pekerjaan, jika tidak ada yang lain, ini adalah pekerjaan tambahan (dan kemungkinan besar alokasi string yang tidak perlu).
Christian.K
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.