मेरे पास हेटरोजेनस कुंजियों - int और स्ट्रिंग के साथ कुछ कक्षाएं हैं - और मैं उनके साथ सामान्य इंटरफ़ेस के माध्यम से काम करना चाहता हूं। यह बहुत सरल है बस int को स्ट्रिंग में परिवर्तित करें लेकिन यह स्पष्ट रूप से perfomance मुद्दों का कारण बन जाएगा। एक और विकल्प जो मैं देखता हूं उन्हें "ऑब्जेक्ट" के लिए बॉक्स किया जाता है, जो कि सही नहीं लगता है, या किसी भी तरह स्ट्रिंग से अद्वितीय पूर्णांक उत्पन्न करता है (पूर्व "स्ट्रिंग" और "int" के बीच कोई जुड़ नहीं होगा, इसलिए उन्हें केवल " स्ट्रिंग "डोमेन) और यहां qu quionion" कैसे "है?स्ट्रिंग से अद्वितीय पूर्णांक कैसे उत्पन्न करें?
उत्तर
बस string.GetHashCode()
लें जो बहुत कम टक्कर संभावना के साथ string
से int
देता है।
जैसा कि @ ट्यूडर ने इंगित किया है GetHashCode स्ट्रिंग्स (और अन्य ऑब्जेक्ट्स) से हैश कोड बनाने का समर्थित तरीका है। दुर्भाग्य से इस तरह के परिवर्तन करने का कोई तरीका नहीं है, इसलिए एक पूर्णांक अद्वितीय तारों का प्रतिनिधित्व करता है जब तक कि आप तारों के सेट पर गंभीर प्रतिबंध नहीं डालते।
आईई। यदि आपके तार पर्याप्त रूप से पर्याप्त हैं (यानी 2 यूनिकोड या 4 ASCII वर्ण) स्पष्ट एक-से-एक मैपिंग है, या यदि तारों का आपका सेट सीमित है और अग्रिम में जाना जाता है।
विषय पर कुछ पढ़ना: अंतर्निहित समस्या pigeonhole principle कहा जाता है जो टकराव की गारंटी देता है। Birthday paradox के कारण उचित रूप से छोटे सेट पर टकराव होने की संभावना है।
string.GetHashCode()
से अवगत रहें।
नेट प्रलेखन राज्यों https://msdn.microsoft.com/en-us/library/system.string.gethashcode(v=vs.110).aspx
हैश कोड में ही स्थिर होने की गारंटी नहीं है। समान स्ट्रिंग्स राज्यों के लिए हैश कोड .NET Framework के एकल संस्करण के लिए .NET फ्रेमवर्क और प्लेटफॉर्म (जैसे 32-बिट और 64-बिट) के सभी संस्करणों में भिन्न हो सकते हैं। कुछ मामलों में, वे भी आवेदन डोमेन से अलग कर सकते हैं
- 1. अद्वितीय पूर्णांक/तेजी से compairson
- 2. अद्वितीय आईडी उत्पन्न करें
- 3. अद्वितीय अल्फान्यूमेरिक कैसे उत्पन्न करें?
- 4. "यादृच्छिक" कैसे उत्पन्न करें लेकिन "अद्वितीय" संख्याएं कैसे उत्पन्न करें?
- 5. अद्वितीय और अंतिम नाम से अद्वितीय उपयोगकर्ता नाम उत्पन्न करें?
- 6. अल्फान्यूमेरिक स्ट्रिंग से अद्वितीय आईडी जेनरेट करें
- 7. माइग्रेशन: पूर्णांक से स्ट्रिंग
- 8. स्ट्रिंग को पूर्णांक टेम्पलेट में पूर्णांक में कैसे परिवर्तित करें?
- 9. रूपांतरण स्ट्रिंग से अद्वितीय पहचानकर्ता
- 10. अजगर अद्वितीय स्ट्रिंग निर्माण
- 11. स्ट्रिंग में पूर्णांक कनवर्ट करें
- 12. जेएस में एक स्ट्रिंग से हेक्स पूर्णांक कैसे प्राप्त करें?
- 13. शर्करा में मॉड्यूल में अद्वितीय आईडी फ़ील्ड कैसे उत्पन्न करें
- 14. डीओएम तत्व के लिए अद्वितीय सीएसएस चयनकर्ता कैसे उत्पन्न करें?
- 15. सी # का उपयोग कर स्ट्रिंग से बारकोड कैसे उत्पन्न करें?
- 16. फोनगैप - बेस 64 स्ट्रिंग से छवि फ़ाइल कैसे उत्पन्न करें?
- 17. कैसे स्ट्रिंग कि स्ट्रिंग/पूर्णांक चर
- 18. स्ट्रिंग :: पूर्णांक
- 19. मैं संकलन समय पर एक स्ट्रिंग अक्षर से एक पूर्णांक कैसे उत्पन्न करूं?
- 20. मैं स्ट्रिंग का लंबा हैश कैसे उत्पन्न कर सकता हूं?
- 21. MySQL अद्वितीय स्तंभ स्ट्रिंग
- 22. अद्वितीय पूर्णांक स्टोर करने का अच्छा तरीका
- 23. 32-char md5 स्ट्रिंग को पूर्णांक
- 24. पूर्णांक से अधिक पूर्णांक का प्रतिनिधित्व कैसे करें
- 25. अद्वितीय पूर्णांक आईडी के लिए UUID?
- 26. बाइनरी स्ट्रिंग को पूर्णांक
- 27. रूबी - स्ट्रिंग को पूर्णांक में कनवर्ट करें
- 28. एल्गोरिदम निश्चित-लंबाई पूर्णांक विभाजन के सभी अद्वितीय क्रमपरिवर्तन उत्पन्न करने के लिए?
- 29. अद्वितीय रंग उत्पन्न करने के लिए एल्गोरिदम
- 30. अद्वितीय खाता संख्याएं उत्पन्न करना - रिकर्सिव कॉल
"बहुत कम" पर्याप्त नहीं है और मैं टक्कर ढूँढने की तकनीक बनाने के लिए नहीं करना चाहते, यह भूमि के ऊपर यहाँ – Yan
@ user1437713 की तरह लगता है: कितने तार कर आपके पास? – Tudor
@ user1437713 - आप जो चाहते हैं वह संभव नहीं है। किसी भी एल्गोरिदम की तरह आप जो चाहते हैं उसे टक्कर का खतरा होता है GUID वास्तव में अद्वितीय नहीं होते हैं। –