在 Visual Basic 中,Dictionary 是一种关联集合,可以存储键-值对。在 VB.NET 中,使用 Dictionary(Of TKey, TValue),来自命名空间 System.Collections.Generic。
早期版本的 Visual Basic 限制于经典集合 (Collection),仅支持字符串或数字键且不类型化。随着 VB.NET 和 .NET Framework 的出现,集合中引入了泛型 Dictionary,使得处理关联数据更加安全和快速。
使用 Dictionary 时的典型错误包括:
在使用 Dictionary 时至关重要:
ContainsKey 方法检查键的存在代码示例:
Dim dict As New Dictionary(Of String, Integer) dict("apples") = 10 ' 在访问之前进行安全检查: If dict.ContainsKey("bananas") Then Console.WriteLine(dict("bananas")) Else Console.WriteLine("未找到键!") End If
关键特点:
访问 Dictionary 中不存在的键时抛出什么异常,如何避免?
错误:System.Collections.Generic.KeyNotFoundException。需要使用 ContainsKey 方法来防止此错误。
可以修改已存在的 Dictionary 元素的键吗?
不可以。键在添加后无法修改——只能删除元素并使用另一个键添加新元素。
Dictionary 和 Hashtable 在 VB.NET 中有什么区别?
Dictionary 是类型安全的(泛型),运行速度更快,不需要对值进行装箱/拆箱。Hashtable 是旧的,且不推荐使用。
** 消极案例
程序员通过 Dictionary 保存按城市的销售统计,但在访问前没有检查城市键是否存在。对此新城市的报告时,会得到 KeyNotFoundException。
优点:
缺点:
** 积极案例
同样的报告,但在访问键时始终使用 ContainsKey 检查,如果键不存在,则返回 0 或输出消息。
优点:
缺点: