Avatar ·

لماذا Dictionary<TKey, TValue> أفضل من Hashtable في C#؟

مرحباً بالجميع! لقد بدأت مؤخراً في تعلم C# وواجهت المجموعات. أرى أن هناك `Hashtable` (من `System.Collections`) و `Dictionary` (من `System.Collections.Generic`). يبدو أن كلاهما يخزن أزواج المفتاح-القيمة، لكن الجميع ينصح باستخدام `Dictionary`. لقد كتبت مثالاً صغيراً باستخدام `Hashtable`: ```csharp Hashtable table = new Hashtable(); table.Add("key1", 123); table.Add("key2", "سلسلة"); foreach (DictionaryEntry entry in table) { Console.WriteLine($"{entry.Key}: {entry.Value}"); } ``` وباستخدام `Dictionary`: ```csharp Dictionary dict = new Dictionary(); dict.Add("key1", 123); dict.Add("key2", 456); // كل شيء صارم هنا foreach (KeyValuePair kvp in dict) { Console.WriteLine($"{kvp.Key}: {kvp.Value}"); } ``` لكني لا أفهم لماذا يعتبر `Dictionary` أكثر تفضيلاً. ففي النهاية، `Hashtable` أسهل في الاستخدام — لا حاجة لتحديد الأنواع، ويقبل أي كائنات. أين المشكلة؟ هل هناك