मैं लुसीन.NET के साथ पहचाने गए खोज में देख रहा हूं, मुझे एक शानदार उदाहरण here मिला है जो इस तथ्य के अलावा एक उचित राशि बताता है कि यह उस कार्य को पूरी तरह से अनदेखा करता है जो कुछ सरणी में वस्तुओं की कार्डिनालिटी की जांच करता है।क्या कोई मुझे बता सकता है कि यह GetCardinality विधि क्या कर रही है?
क्या कोई मुझे यह कर रहा है कि वह क्या कर रहा है? मुख्य चीजें जिन्हें मैं समझ नहीं पा रहा हूं, क्यों बिट्ससेटएरे को इसके रूप में बनाया गया है, इसका उपयोग किस प्रकार किया जाता है और कैसे सभी बयान लूप में काम करते हैं।
यह एक बड़ा सवाल हो सकता है लेकिन मुझे यह समझना होगा कि इससे पहले कि मैं इसे अपने कोड में उपयोग करने के बारे में सोच सकूं।
धन्यवाद
public static int GetCardinality(BitArray bitArray)
{
var _bitsSetArray256 = new byte[] {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8};
var array = (uint[])bitArray.GetType().GetField("m_array", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(bitArray);
int count = 0;
for (int index = 0; index < array.Length; index ++)
count += _bitsSetArray256[array[index] & 0xFF] + _bitsSetArray256[(array[index] >> 8) & 0xFF] + _bitsSetArray256[(array[index] >> 16) & 0xFF] + _bitsSetArray256[(array[index] >> 24) & 0xFF];
return count;
}
शानदार, धन्यवाद AakashM। इनमें से कुछ अभी भी मेरे सिर पर चला जाता है लेकिन कम से कम मैं विधि की अवधारणा को समझता हूं और वास्तव में यह क्या कर रहा है। –