C# 哈希表
哈希表:
1,哈希表里没有索引号:不支持for循环,但支持foreach循环
2,键不能重复
3,哈希表在遍历中可移除某个键/值对;注意,移除后一定要退出循环(break;)
4,键放入顺序不一定是自然顺序;
用来通过制定的Key,查找Value的。Key不可重复,但是Value可以重复。Key的检索是通过HashCode进行的,效率比普通列表要高,因此有人单独使用Key来存放不重复的关键字,而Value不给值,设为null,用来判断某个key是否存在,效率比普通的集合中判断是否存在要高,不过相应的内存消耗也比较大。
Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/的键值对,其中key通常可用来快速查找,同时key是区分大小写;用于存储对应于key的值。Hashtable中key/键值对均为object类型,所以Hashtable可以支持任何类型的key/键值对.
使用键值对时可使用。
一.常用的方法:
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();
}
二.遍历哈希表:
遍历哈希表需要用到DictionaryEntry Object,代码如下:
for(DictionaryEntry de in ht) //ht为一个Hashtable实例
{
Console.WriteLine(de.Key);//de.Key对应于key/value键值对key
Console.WriteLine(de.Value);//de.Key对应于key/value键值对value
}
或者
foreach (string mykey in ht.Keys)
{
string str=(string)ht[mykey];
Console.WriteLine(str);
}