<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(); } } }
时间: 2024-10-05 19:15:57