C#中Hashtable

本文详细介绍了哈希表Hashtable的概念、构造、添加元素、删除元素、遍历及其它常用方法,并通过示例代码展示了如何在实际场景中应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

哈希表Hashtable是一个重要的集合类型,下面我来对他的基本用法做个小小的总结。

using System.Collections; //使用Hashtable时,必须引入这个命名空间

1、Hashtable的概述

Hashtable它表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。它的每个元素都是一个存储在DictionaryEntry对象中的键/值对,键不能为空引用,但值可以。

Hashtable常用的两种构造函数:public Hashtable()  public Hashtable(int capacity)

2、向Hashtable添加元素

向Hashtable添加元素时,可以采用系统提供的Add方法。其语法格式如:public virtual void Add(Object key,Object value)

下面举个详细点的例子如:

Hashtable hashtable = new Hashtable();   //实例化Hashtable对象
hashtable.Add("id", "600719");     //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
Console.WriteLine(hashtable.Count);   //获得Hashtable哈希表中的元素个数

3、删除Hashtable中的元素

·Clear方法:该方法用来移除Hashtable中的所有元素,其语法格式如:public virtual void Clear()

Hashtable hashtable = new Hashtable();   //实例化Hashtable对象
hashtable.Add("id", "600719");     //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
hashtable.Clear();       //移除Hashtable哈希表中的元素
Console.WriteLine(hashtable.Count);

·Remove方法:该方法用来从Hashtable中移除带有指定键的元素,其语法格式如下:public virtual void Remove(Object value)

Hashtable hashtable = new Hashtable();   //实例化Hashtable对象
hashtable.Add("id", "600719");     //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
hashtable.Remove("sex");     //移除Hashtable哈希表中的指定元素
Console.WriteLine(hashtable.Count);

4、Hashtable的遍历

遍历其实与数组类似,但是Hashtable中的元素是一个键值对的集合,因此需要使用DictionaryEntry类型来遍历,下面通过一个例子来说明下吧!

Hashtable hashtable = new Hashtable();  //实例化Hashtable对象
hashtable.Add("id", "600719");    //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
Console.WriteLine("\t 键\t 值");
//遍历Hashtable哈希表中的元素并输出其键值对
foreach (DictionaryEntry dicEntry in hashtable)
   {
         Console.WriteLine("\t " + dicEntry.Key + "\t " + dicEntry.Value);
    }
Console.WriteLine();

5、Hashtable提供的其它方法介绍

·Contains方法:该方法用来确定Hashtable中是否包含特定键,其语法格式如:public virtual bool Contains(Object key)

Hashtable hashtable = new Hashtable();   //实例化Hashtable对象
hashtable.Add("id", "600719");     //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
Console.WriteLine(hashtable.Contains("id"));  //判断Hashtable哈希表中是否包含指定的键

·ContainsValue方法:该方法用来确定Hashtable中是否包含特定值,其语法格式如:public virtual bool ContainsVlaue(Object value)

Hashtable hashtable = new Hashtable();   //实例化Hashtable对象
hashtable.Add("id", "600719");     //向Hashtable哈希表中添加元素
hashtable.Add("name", "denylau");
hashtable.Add("sex", "男");
Console.WriteLine(hashtable.ContainsValue("id")); //判断Hashtable哈希表中是否包含指定的键值

6、对哈希表进行排序

     对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
 ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections
 akeys.Sort(); //按字母顺序进行排序
 for(string skey in akeys)
 {
   Console.Write(skey + ":");
   Console.WriteLine(ht[skey]);//排序后输出
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值