HashTable Class
Part of my 2008 study notes for exam 70-536 (.NET Framework 2.0).
Overview
- Key-value pair based collection.
- Contains DictionaryEntry objects.
- Not accessible by index, only by key.
- Values are returned based on the hash value when doing a foreach.
- Internally uses hashes to store objects, derived from the GetHashCode method on each object.
- Hashes are used for equality of objects.
- No duplicate hashes can occur.
Good practice
- When possible, use a generic collection instead of the object-based HashTable.
- Implement GetHashCode and Equals in custom objects when you need HashTable to treat objects as the same.
- Use a ListDictionary or HybridDictionary when working with smaller collections than 10 or unknown size collections.
Examples
Adding and Removing Elements
Hashtable a = new Hashtable();
a.Add("Key1", "Hello");
a.Add("Key2", "World");
a.Add("Key0", "Start");
Console.WriteLine(a["Key1"] + " " + a["Key2"]);
foreach (DictionaryEntry d in a) { Console.WriteLine(d.Value); }
foreach (var v in a.Values) { Console.WriteLine(v); }
a.Remove("Key1");
foreach (var k in a.Keys) { Console.WriteLine(a[k]); }
You May Also Like
ArrayList Class
Resizeable, unordered, index-based collection. Suffers from boxing/unboxing when working with value types. Implements IEnumerator, allowing foreach…
BinaryReader Class and BinaryWriter Class
Used to read and write binary data from streams. Call the correct Read methods when using a BinaryReader.
BitArray Class
Contains an array of true/false values. Resizable through the Length property. Supports bitwise operations.



