2012-01-16 12 views
62

बिना मैं अपने कोडपैदा GUID हाइफन

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

लेकिन, में निम्नलिखित बयान का उपयोग कर एक GUID पैदा कर रहा हूँ जब एक GUID उत्पन्न होता है, मुझे लगता है कि यह हाइफन चरित्र भी शामिल हैं। मैं केवल अक्षरों (ऊपरी मामले और निचले मामले) और संख्याओं के साथ एक GUID उत्पन्न करने के बारे में कैसे जा सकता हूं? मैं हाइफ़न नहीं चाहता। क्या कोई मुझे इतना विचार दे सकता है?

उत्तर

184

ध्यान दें कि आप एक Guid की (विहित) स्ट्रिंग प्रतिनिधित्व के बारे में बात कर रहे हैं। ग्रिड स्वयं वास्तव में 128-बिट पूर्णांक मान है।

आप Guid.ToString(String) अधिभार के साथ "एन" विनिर्देशक का उपयोग कर सकते हैं।

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

डिफ़ॉल्ट अक्षरों से लोअरकेस हैं। केवल बड़े अक्षरों के साथ एक Guid केवल उन्हें मैन्युअल रूप से सभी अपरकेस, उदाहरण के लिए परिवर्तित करने के द्वारा प्राप्त किया जा सकता है:

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

एक ही या तो पत्र या अंक के साथ guid कोई मतलब नहीं है। एक ग्रिड स्ट्रिंग प्रतिनिधित्व हेक्साडेसिमल है, और इस प्रकार हमेशा (अच्छी तरह से संभवतः) दोनों होते हैं।

+0

क्या संख्याओं के साथ ऊपरी और लोअरकेस वर्णों के साथ एक GUID बनाना संभव है ??? –

+5

@ हरिश कुमार, इसका कोई मतलब नहीं है। GUID स्ट्रिंग हेक्साडेसिमल संख्या है। उस नोटेशन में 'ए' 'ए' जैसा ही है। यद्यपि इसके कारण आप अपने इच्छित आवरण में प्रत्येक पत्र मुद्रित कर सकते हैं (लेकिन मुझे वास्तव में उसमें कोई बिंदु नहीं दिखता है)। –

+0

लेकिन जो मैं चाहता हूं वह एक ग्रिड स्ट्रिंग है, जो कम केस, ऊपरी केस और संख्याओं का मिश्रण है ... क्या मैं अलग तरह से प्राप्त कर सकता हूं ??? –

1
Guid.NewGuid().ToString().Replace("-", string.Empty) 
+13

हालांकि यह काम करेगा, अगर कुछ और नहीं है, तो यह अतिरिक्त काम है (और संभवतः एक अनावश्यक स्ट्रिंग आवंटन)। –

संबंधित मुद्दे