Avatar ·

C# में Hashtable की तुलना में Dictionary को क्यों प्राथमिकता दी जाती है? अंतर समझिए

सभी को नमस्कार! मैं एक शुरुआती C# डेवलपर हूँ और मुझे एक ऐसी स्थिति का सामना करना पड़ा जिसने मुझे भ्रमित कर दिया। Collections का अध्ययन करते हुए, मैं दो समान classes पर पहुँचा: `Hashtable` और `Dictionary`। दोनों, जैसा कि मैंने समझा, key-value pairs store करते हैं और key द्वारा डेटा को जल्दी से खोजने की अनुमति देते हैं। पुराने कोड उदाहरणों और कुछ पुस्तकों में, मैं अक्सर `Hashtable` देखता हूँ। उदाहरण के लिए, इस तरह: ```csharp Hashtable table = new Hashtable(); table.Add("key1", "value1"); table.Add(123, 42); // key — int, value — int string val = (string)table["key1"]; // explicit casting आवश्यक है ``` लेकिन आधुनिक projects और Stack Overflow पर, सभी `Dictionary` के बारे में लिखते हैं। मैंने दोनों विकल्पों को आज़माया और देखा कि `Dictionary` के साथ कोड अलग दिखता है: ```csharp Dictionary dict = new Dictionary(); dict.Add("key1", "value1"); // dict.Add(123, 42); // Compilation error! Type mismatch string val = dict["key1"]; // casting की आवश्यकता नहीं है ``` मेरा प्रश्न: मूलभूत अंतर क्या है?