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 की आवश्यकता नहीं है
```
मेरा प्रश्न: मूलभूत अंतर क्या है?