为什么在C#中Dictionary比Hashtable更受推荐?解析差异
大家好!我是一名C#初学者,遇到了一个让我困惑的情况。在学习集合时,我发现了两个相似的类:`Hashtable`和`Dictionary`。据我理解,它们都存储“键-值”对,并允许通过键快速查找数据。
在旧的代码示例和一些书籍中,我经常看到`Hashtable`。例如:
```csharp
Hashtable table = new Hashtable();
table.Add("key1", "value1");
table.Add(123, 42); // 键是int,值是int
string val = (string)table["key1"]; // 需要显式转换
```
但在现代项目和Stack Overflow上,大家都在写`Dictionary`。我尝试了两种方式,发现使用`Dictionary`的代码看起来不同:
```csharp
Dictionary dict = new Dictionary();
dict.Add("key1", "value1");
// dict.Add(123, 42); // 编译错误!类型不匹配
string val = dict["key1"]; // 不需要转换
```
我的问题是:根本区别在于