C#中的Hashtable

来源:互联网 发布:linux打包多个文件夹 编辑:程序博客网 时间:2024/06/06 00:17
1、别称:哈希表、键值对、关联数组

2、概述:
    (1)、用于处理和表现类似Key/Value的键值对
        (2)、key --- 可以是不同数据类型,但不能重名,必须满足唯一性,同时它还区分大小写。通常用于快速查找,类似索引。
               value --- 用于存储对应key的值,
               二者均为object类型, 因此,Hashtable支持任何类型的key/value键值对。
        (3)、Hashtable中的元素存储在DictionaryEntry对象中。

3、声明之前需引用命名空间:System.Collections
    Hashtable ht = new Hashtable();

4、添加方法:
    (1)Add(键,"值")
    (2)ht[键] = "值"
    用第二种方法,可能添加元素,也可能是重新赋值,取决于 “键”是否已经存在!

5、遍历方法:利用foreach循环
    (1)用DictionaryEntry对象 声明;
        foreach (DictionaryEntry myEntry in ht)
                {
                    Console.WriteLine("key键:{0}-----value值:{1}",myEntry.Key,myEntry.Value);
                }
    (2)用Object类声明
        foreach (object obj in ht.Keys)
                {
                    Console.WriteLine("key键:{0}-----value值:{1}",obj,ht[obj]);
                }
6、删除方法:
    Remove(Key键) ----- 删除指定元素
    Clear() ------ 清空所有元素

7、查找方法:(返回布尔值)
    ContainsKey ---- 按  键  查找
    ContainsValue ----  按  值  查找


8、演示代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Collections;namespace Hashtable演示{    class Program    {        static void Main(string[] args)        {            Hashtable ht = new Hashtable();            ht.Add(1,"张三");            ht.Add(true,"李四");            ht.Add(false,"王五");            ht[2] = "赵六";            ht[true] = "我把李四覆盖了"; //重新赋值,因为已经存在key键 true            //用object类声明            foreach (object obj in ht.Keys)            {                Console.WriteLine("key键:{0}-----value值:{1}",obj,ht[obj]);            }            Console.WriteLine("====================================");            //用DictionaryEntry类声明            foreach (DictionaryEntry myEntry in ht)            {                Console.WriteLine("key键:{0}-----value值:{1}",myEntry.Key,myEntry.Value);            }            Console.WriteLine("====================================");            //查找指定元素            if (ht.ContainsKey(false))  //按 键 查找            {                Console.WriteLine("存在false键!");            }            else            {                Console.WriteLine("不存在false键!");            }            Console.WriteLine("");            if (ht.ContainsValue("张三"))    //按 值 查找            {                Console.WriteLine("存在这个值");            }            else            {                Console.WriteLine("不存在这个值!");            }            //删除元素            Console.WriteLine("");            ht.Remove(false);            Console.WriteLine("删除false键对应的值:王五");            foreach (DictionaryEntry myEntry in ht)            {                Console.WriteLine("key键:{0}-----value值:{1}", myEntry.Key, myEntry.Value);            }            Console.WriteLine("");           //清空所有元素            ht.Clear();             foreach (DictionaryEntry myEntry in ht)            {                Console.WriteLine("key键:{0}-----value值:{1}", myEntry.Key, myEntry.Value);            }            Console.WriteLine("哈哈,我把所有元素清空了!");            Console.ReadKey();        }    }}


0 0
原创粉丝点击