<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();
}
}
}
原文地址:http://blog.csdn.net/fanbin168/article/details/41924413