मुझे अपने आवेदन में System.Collections.BitArray
कक्षा से कुछ और चाहिए। विशेष रूप से, मैं थोड़ा सरणी की जरूरत है:बिट ऐरे समानता
- अपरिवर्तनीय होना करने के लिए
- का उपयोग कर मूल्य अर्थ विज्ञान
मैं अपने खुद के struct
बनाया है, मोटे तौर पर BitArray
कार्यान्वयन के आंतरिक भागों को कॉपी समानता लागू करने के लिए। (धन्यवाद, .Net Reflector!)
मैं हर रोज थोड़ा सा संचालन के साथ सौदा नहीं करता, इसलिए मेरे समानता कार्यान्वयन में मुझे उच्चतम आत्मविश्वास नहीं है। (यह यूनिट परीक्षणों को पार कर रहा है, मैं इसे फेंक रहा हूं, लेकिन मुझे किनारे के मामले गुम हो सकते हैं।) मेरे पास मेरे प्रस्तावित समाधान नीचे दिए गए उत्तरों के रूप में हैं। मैं उन चीज़ों के लिए दूसरों की प्रतिक्रिया और उत्तर की सराहना करता हूं जो अधिक सही या कुशल हो सकते हैं।
बस CLR BitArray
की तरह, length
क्षेत्र 32-बिट पूर्णांक सरणी कि बिट का प्रतिनिधित्व करने के लिए संदर्भित करता है struct में बिट्स की संख्या और array
क्षेत्र (या Array
संपत्ति) को दर्शाता है।
[वर्गीकरण] मैंने अपने रचनाकारों और अन्य तरीकों में आसान मार्ग लेने का चयन किया है ताकि मैं अनावश्यक बिट्स पर शून्य से भरोसा न कर सकूं। उदाहरण के लिए,
Not()
पूर्णांक सरणी तत्वों पर बिटवाइज़ निषेध (~
) द्वारा कार्यान्वित किया जाता।- एक कन्स्ट्रक्टर उपलब्ध है जो सभी बिट्स को आरंभ करने के लिए लंबाई और बूलियन लेता है। तो प्रारंभ मूल्य सच है, मैं सभी (दो के पूरक में सभी 1 के द्वारा प्रतिनिधित्व किया,) -1 को पूर्णांक सरणी के तत्वों
- आदि
इस प्रकार, मैं संभाल करने की जरूरत है (या, बल्कि, उन्हें अनदेखा करें) तुलना में उन्हें। एक अच्छा समाधान भी उन बिट्स हर समय ध्यान केंद्रित किया रखने के लिए (दोनों कंप्यूटर के लिए और मुझे!) समानता तरीका होगा, लेकिन मेरी स्थिति में है कि अधिक काम का परिणाम देगा
आपके ऐरे सदस्य का प्रकार क्या है? –
ऐरे इंट 32 है [] –