在C#中应用哈希表(Hashtable)

C#中使用哈希表(HashTable)的详细用法 要遍历哈希表中的所有键值对,可以使用哈希表的GetEnumerator方法获取一个枚举器,并使用while循环遍历。哈希表(HashTable)是C#中常用的数据结构之一,它提供了一种有效的存储和访问键值对的方式。在本文中,我们将详细介绍C#中哈希表的用法,并提供相应的源代码示例。在C#中,我们可以使用HashTable类的构造函数来创建一个新的哈希表实例。如果要从哈希表中移除特定的键值对,可以使用哈希表的Remove方法。要获取哈希表中特定键的值,我们可以使用索引器(indexer)或使用哈希表的。 阅读详情

                                                     在C#中应用哈希表(Hashtable)

一、哈希表(Hashtable)简述


        在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.

二、哈希表的简单操作

 在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
 在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
 从哈希表中移除所有元素:                  HashtableObject.Clear();
 判断哈希表是否包含特定键key:         HashtableObject.Contains(key);
 判断哈希表是否包含特定值value:       HashtableObjectContainsValue
 下面控制台程序将包含以上所有操作:
 using System;
 using System.Collections; //使用Hashtable时,必须引入这个命名空间
 class hashtable
 {
  public static void Main()
  {
  Hashtable ht=new Hashtable(); //创建一个Hashtable实例
  ht.Add("E","e");//添加key/value键值对
  ht.Add("A","a");
  ht.Add("C","c");
  ht.Add("B","b");
  string s=(string)ht["A"];
  if(ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
    Console.WriteLine("the E key:exist");
  ht.Remove("C");//移除一个key/value键值对
  Console.WriteLine(ht["A"]);//此处输出a
  ht.Clear();//移除所有元素
  Console.WriteLine(ht["A"]); //此处将不会有任何输出
   }
  }

三、遍历哈希表

 遍历哈希表需要用到DictionaryEntry Object,代码如下:
 foreach(DictionaryEntry de in ht) //ht为一个Hashtable实例
 {
   Console.WriteLine(de.Key);//de.Key对应于key/value键值对key
   Console.WriteLine(de.Value);//de.Key对应于key/value键值对value
 }

四、对哈希表进行排序

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

WinFormHashTable最简单用法,.net hashtable ,hashtable ,hashtable用法 立即下载

相关推荐

C# 哈希算法集合类库

C# 哈希算法集合类库。集成了很多种哈希算法。方便使用。

C#下捣腾一下Hashtable和delegate

当个小例子记录一下。 Hashtable用来表示一组key/value结构的容器,其结构中Key用来快速查找。delegate委托,委托是一种数据结构,它引用静态方法或引用类实例及该类的实例方法。这里的例子是在Hashtable里保存delegate。照例声明一下:        private Hashtable ht;        public delegate vo

Hermit的专栏 2307

C#两级嵌套hash表

封装hashtable的两级hash表,两个键值索引和访问。适合存放稀疏数据,如稀疏矩阵,稀疏表等结构,由于提供key-value的索引遍历,数据稀疏的情况下,相比于传统矩阵遍历的速度更快。

模块三hashlib模块

# 加密模块 摘要算法 一堆加密算法的集合体 import hashlib # 给密码加密。 # 文件的校验。 # hashlib: 将str类型 通过算法 -----> 一串等长度的数字。 # 1,不同的字符串 转化成数字肯定不同。 # 2,相同的字符串即使在不同的计算机上只要使用相同的加密方式 转化成的数字一定相同。 # 3,hashlib加密不可逆,不能破解。 import ha...

weixin_42127687的博客 272

基础矩阵、本质矩阵、单应矩阵

基础矩阵是一个 3×3 的秩为2的矩阵,用于描述两个不同视图(或称为图像)之间对应点的几何约束。更具体地说,如果你有两幅图像,分别从两个不同的相机或者相机位置拍摄,那么基础矩阵可以用于找到一个图像中的点在另一个图像中的对应点。本质矩阵也是一个 3×3 的秩为2的矩阵,与基础矩阵非常类似。当两个视图(图像)之间的场景是一个平面或者两个视图之间仅有旋转和平移时,可以使用单应矩阵来关联这两个视图。这三个矩阵都是在计算机视觉中广泛应用的基础工具,但它们适用于不同类型的视图和场景。给定两个图像中的一对对应点。

Gloamirror的博客 1329

【MBD开发】Simulink中的枚举

01 什么是枚举 按百度百科的词条【枚举】是在编程语言中用来存储一组固定的常量。不同编程语言的枚举语法也不一样,以C语言为例。 typedef enum{ GEAR_P, //0:P挡 GEAR_R, //1:倒挡 GEAR_N, //2:空挡 GEAR_D, //3:前进}_GEAR; 上面枚举了一个_GEAR数据,用GEAR_P表示0,GEAR_R表示1……​​​​​​​ if(current_gear==GEAR..

f6723的博客 3096

C#中的哈希表(Hashtable)应用

一.哈希表(Hashtable)简述在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/

lincnl的专栏 525

S32K3xx系列DMA驱动实战:EB配置与Mcal接口应用全解析(含Adc硬件触发示例)

本文深入解析S32K3xx系列MCU的DMA驱动开发,涵盖EB工具配置与Mcal接口应用,特别包含ADC硬件触发示例。通过详细架构分析、实战配置步骤和工业级应用案例,帮助开发者掌握AUTOSAR环境下DMA高效数据传输技术,提升汽车电子和工业控制系统的性能。

weixin_29162439的博客 466
上一篇: C#中的类型转换
下一篇: 如何学习Oracle?
FlyHope2005
博客等级 码龄22年 7粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值