命名空間
System.Collections
名稱
哈希表(Hashtable)
描述
用於處理和表現類似keyvalue的鍵值對,其中key通常可用來快速查找,同時key是區分大小寫;value用於存儲對應於key的值。Hashtable中keyvalue鍵值對均為object類型,所以Hashtable可以支持任何類型的keyvalue鍵值對.
二,哈希表的簡單操作
Hashtable hshTable = new Hashtable(); // 創建哈希表
hshTable .Add("Person1", "zhanghf"); // 往哈希表里添加鍵值對
hshTable .Clear(); //移除哈希表里所有的鍵值對
hshTable .Contains("Person1"); //判斷哈希表里是否包含該鍵
string name = (string)hshTable["Person1"].ToString(); //取哈希表里指定鍵的值
hshTable.Remove("Person1"); // 刪除哈希表里指定鍵的鍵值對
IDictionaryEnumerator en = hshTable.GetEnumerator(); // 遍歷哈希表所有的鍵,讀出相應的值
while (en.MoveNext())
{
string str = en.Value.ToString();
}
下面控制台程序將包含以上所有操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
class
Program
{
static
void
Main(
string
[] args)
{
// 創建一個Hashtable實例
Hashtable ht=
new
Hashtable();
// 添加keyvalue鍵值對
ht.Add(
"A"
,
"1"
);
ht.Add(
"B"
,
"2"
);
ht.Add(
"C"
,
"3"
);
ht.Add(
"D"
,
"4"
);
// 遍歷哈希表
foreach
(DictionaryEntry de
in
ht)
{
Console.WriteLine(
"Key -- {0}; Value --{1}."
, de.Key, de.Value);
}
// 哈希表排序
ArrayList akeys=
new
ArrayList(ht.Keys);
akeys.Sort();
foreach
(
string
skey
in
akeys)
{
Console.WriteLine(
"{0, -15} {1, -15}"
, skey, ht[skey]);
}
// 判斷哈希表是否包含特定鍵,其返回值為true或false
if
(ht.Contains(
"A"
))
Console.WriteLine(ht[
"A"
]);
// 給對應的鍵賦值
ht[
"A"
] =
"你好"
;
// 移除一個keyvalue鍵值對
ht.Remove(
"C"
);
// 遍歷哈希表
foreach
(DictionaryEntry de
in
ht)
{
Console.WriteLine(
"Key -- {0}; Value --{1}."
, de.Key, de.Value);
}
// 移除所有元素
ht.Clear();
// 此處將不會有任何輸出
Console.WriteLine(ht[
"A"
]);
Console.ReadKey();
}
}
|