DictionaryBase 类是用来创建用户字典的抽象类。 而字典则是利用散列表 (或者有时为单独
的链表)作为潜在的数据结构来把数据存储到键值对内的一种数据结构。键值对作 为
DictionaryEntry 对 象 来 进 行 存 储 , 而 且 必 须 使 用 Key 方 法 和 Value 方 法 来 取 回
DictionaryEntry 对象中的实际值。
public class myDictionary : DictionaryBase { public myDictionary() { } public void Add(object key, object value) { base.InnerHashtable.Add(key, value); } public void Remove(object key) { base.InnerHashtable.Remove(key); } public object Get(object key) { return base.InnerHashtable[key]; } public void Clear() { base.InnerHashtable.Clear(); } public int Count() { return base.InnerHashtable.Count; } public void Insert(object key, object value) { if (base.InnerHashtable.Contains(key)) { base.InnerHashtable.Remove(key); } base.InnerHashtable.Add(key,value); } public DictionaryEntry[] Entrys() { DictionaryEntry[] de = new DictionaryEntry[base.InnerHashtable.Count-1]; base.InnerHashtable.CopyTo(de, 0); return de; } }
DictionaryBase 类是一种用作专有字典实现基础的抽象(MusInherit)类。
存储在字典中的键值对实际上是作为 DictionaryEntry 对象来存储的。DictionaryEntry 结构
提供了两个域,一个用于关键字而另一个用于值。在这个结构中所要关注的只是 Key 属性
和 Value 属性这两个属性(或方法) 。当把键值对录入到字典内的时候,这些方法会返回存
储的值。
就内部而言,会把键值对存储在被称为 InnerHashTable 的散列表对象中。
.NET 框架库提供了一种非常有用的处理散列表的类, 即 Hashtable 类.
Hashtable 类是 Dictionary 对象的一种特殊类型,它存储了键值对,其中的数值都是在源于
关键字的散列代码的基础上进行存储的。
public class myHashTable { Hashtable ht = new Hashtable(); public myHashTable(){ } public void Add(object key, object value) { ht.Add(key, value); } public void Remove(object key) { if(ht.ContainsKey(key)) { ht.Remove(key); } } public object Get(object key) { return ht[key]; } public void Clear() { ht.Clear(); } public int Count() { return ht.Count; } public void Insert(object key, object value) { if (ht.Contains(key)) { ht.Remove(key); } ht.Add(key, value); } }
Hashtable 类有两个非常有用的方法用来从散列表中取回关键字和数值: 即 Keys 和 Values 。
这些方法创建了一个 Enumerator 对象,它允许使用 For Each 循环或者其他一些技术来检
查关键字和数值。