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);
            }
posted @ 2013-01-04 16:11  赤狐(zcm123)  阅读(242)  评论(0编辑  收藏  举报