हाइफ़न के बिना GUID उत्पन्न करना


104

मैं अपने कोड में निम्न कथन का उपयोग कर एक GUID बना रहा हूं

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

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

जवाबों:


273

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

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

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

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

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

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


क्या संख्याओं के साथ ऊपरी और निचले दोनों किनारों के साथ एक GUID बनाना संभव है ???
हरीश कुमार

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

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

7
@ हर्षकुमार आप यह कैसे तय करेंगे कि कौन से अक्षर ऊपरी होने चाहिए और कौन से लोअरकेस होने चाहिए? आप निश्चित रूप से string.Replace(char, char)इसे प्राप्त करने के लिए उपयोग करने के लिए स्वतंत्र हैं , लेकिन वास्तव में यह व्यर्थ और अनावश्यक है। एक नए प्रश्न को पोस्ट करने पर विचार करें और यह पूछने की कोशिश करें कि आप वास्तव में क्या हासिल करना चाहते हैं - यह लगता है कि केवल GUID स्ट्रिंग्स में हाइफ़न से छुटकारा पाने से अधिक है।
क्रिश्चियन.के

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

20
हालांकि यह काम करेगा, अगर और कुछ नहीं, यह अतिरिक्त काम है (और सबसे अधिक संभावना है कि एक अनावश्यक स्ट्रिंग आवंटन)।
क्रिश्चियन.के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.