HashTable也是c#中一个比较常用的集合类型。其每一个元素都是存储在Dictionarytry对象的中键/值对中。
其中键(key)不能为null,但是值可以。另外HashTable中的值不能进行排序,如果要对HashTable中的值进行排序,一般可以将HashTable中的键值保存到ArrayList中,然后对ArrayList进行序,然后对排序之后的ArrayList中的键来读取HashTable中的value值。
下面贴一下关于hashtable的简单代码:

Code
1
public class Cs_HashTable
2
{
3
private Hashtable myHashTable = null;
4
5
//初始化hashtable
6
private Hashtable InitHashTable()
7
{
8
Hashtable myHashTable = Hashtable.Synchronized();
9
myHashTable.Add("test1","1");
10
myHashTable.Add("test2", "2");
11
myHashTable.Add("test3", "3");
12
return myHashTable;
13
}
14
15
/**//// <summary>
16
/// 打印hashtable中的key和value
17
/// </summary>
18
/// <param name="flag">true,对hashtable中的值进行排序,否则不排序打印</param>
19
public void PrintHashTable(bool flag)
20
{
21
myHashTable = InitHashTable();
22
if (myHashTable != null)
23
{
24
if (flag)
25
{
26
//首先获取哈希表中的键值,并将键值保存到ArrayList中,然后对ArrayList进行排序
27
//然后再按照ArrayList中排序的键值,打印出哈希表中相对应的value值
28
ICollection keys = myHashTable.Keys;
29
ArrayList al = new ArrayList(keys);
30
al.Sort();
31
foreach (object obj in al)
32
{
33
Console.Write("the key:{0},", obj);
34
Console.Write("the value:{0}/n", myHashTable[obj]);
35
}
36
Console.ReadLine();
37
38
39
}
40
else
41
{
42
Console.Write("print the key and value which in the hasxtable:/n");
43
foreach (DictionaryEntry de in myHashTable)
44
{
45
Console.Write("the key:{0},", de.Key);
46
Console.Write("the value:{0}/n", de.Value);
47
}
48
Console.ReadLine();
49
}
50
}
51
else
52
{
53
return;
54
}
55
}