首页 > 代码库 > HashTable键值对集合

HashTable键值对集合

<1>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace HashTable键值对集合
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建了一个键值对集合对象
            Hashtable ht = new Hashtable();

            //-------------------------------Add() 添加


            //Add(object key, object value) ;根据里氏转换定律,当一个地方需要一个父类对象,你可以给它一个子类对象。因为object是所有类的父类,所以你可以给它任何类型的数据

            ht.Add(1, "张三");
            ht.Add(2, "李四");
            ht.Add(3, "王五");
            ht.Add(false, "假");
            ht.Add("数组", new int[] { 5, 6, 7 });

            ht[4] = "新来的"; //除了Add()方法外,这也是一种添加数据的方式;在ht集合中创建key为4值为“新来的”的键值对

            //ht.Add(1, "赵六");//运行会报错:因为键是唯一的,ht里已经有一个key为1的键值对了。如果再添加就报错了。但是以下方法却可以
            ht[1] = "赵六"; // 这里.net内部其实做了一个判断:如果ht里存在key为1的键值对,那么就将key为1的值替换为“赵六”。如果不存在key为1的键值对,那么就创建key为1值为赵六的键值对。

            //在键值对集合中是根据“键”去找“值”的




            //-------------------------------Clear()清空所有元素;

            ht.Clear();



            //-------------------------------Remove()移除指定元素

            ht.Remove(1);//移除key为1的键值对



            //-------------------------------Contains()包含

            //Contains()与ContainsKey()是一样的

            bool b = ht.Contains(1);// 检查ht键值对集合里是否有包含key为1的键值对
            bool c = ht.ContainsKey(1);//检查ht键值对集合里是否有包含key为1的键值对。

            // 如果 System.Collections.Hashtable 包含带有指定的 value 的元素,则为 true;否则为 false。
            bool d = ht.ContainsValue("王五"); //即检查ht集合中是否包含值为“王五”的键值对。




            //---------------------------------------------


            foreach (var item in ht.Keys)
            {
                Console.WriteLine("键是---{0}-------值是{1}", item, ht[item]);  //这里是遍历的是keys 所有item是键,ht[item] 是键对应的值;
            }

            foreach (var item in ht.Keys)
            {
                Console.WriteLine(item); //遍历key ;这里输出:1,2,3,false,数组
            }

            foreach (var item in ht.Values)
            {
                Console.WriteLine(item);//遍历value ;这里输出 张三,李四,王五,假,System.Int32[]
            }
            Console.ReadKey();
        }
    }
}


HashTable键值对集合