1. 哈希表(Hashtable)简述

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

2. 哈希表的简单操作

在哈希表中添加一个keyvalue键值对:HashtableObject.Add(key,value);

在哈希表中去除某个keyvalue键值对:HashtableObject.Remove(key);

从哈希表中移除所有元素: HashtableObject.Clear();

判断哈希表是否包含特定键key: HashtableObject.Contains(key);

下面控制台程序将包含以上所有操作:

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

3. 遍历哈希表

遍历哈希表需要用到DictionaryEntry Object,代码如下:

for(DictionaryEntry de in ht) //ht为一个Hashtable实例{Console.WriteLine(de.Key);//de.Key对应于keyvalue键值对keyConsole.WriteLine(de.Value);//de.Key对应于keyvalue键值对value}

4. 对哈希表进行排序

对哈希表进行排序在这里的定义是对keyvalue键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:

 ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collectionsakeys.Sort(); //按字母顺序进行排序for(string skey in akeys){Console.Write(skey + ":");Console.WriteLine(ht[skey]);排序后输出}

转载自 https://www.cnblogs.com/-qing-/p/10872940.html

C#中HashTable的用法相关推荐

  1. C#中NameValueCollection类用法详解

    C#中NameValueCollection类用法详解,1.NameValueCollection类集合是基于 NameObjectCollectionBase 类. 但与 NameObjectCol ...

  2. 关于java的集合类,以及HashMap中Set的用法!

    來源:http://hi.baidu.com/fyears/blog/item/52329711622e007ccb80c465.html 关于java的集合类,以及HashMap中Set的用法! 2 ...

  3. C# 哈希表(Hashtable)用法笔记

    一.什么是Hashtable? Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对.它使用键来访问集合中的元素. 当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值.哈 ...

  4. jsp中用java写标签id_jsp中自定义标签用法实例分析

    本文实例讲述了jsp中自定义标签用法.分享给大家供大家参考.具体如下: 这里简单的写了一个自定义标签,自己定义标签的好处就是在jsp页面中可以使用自己定义的功能,完全与Java代码分离 1. tld文 ...

  5. viewstate 解码 php,.NET_asp.net中ViewState的用法详解,在web窗体控件设置为runat = serv - phpStudy...

    asp.net中ViewState的用法详解 在web窗体控件设置为runat = "server",这个控件会被附加一个隐藏的属性_ViewState,_ViewState存放了 ...

  6. mysql中change用法,mysql 中alter的用法以及一些步骤

    mysql 中alter的用法以及一些方法 在用到alter的时间,查到了这个文章,就copy下来了,详细进入下面链接: MySQL之alter语句用法总结 1:删除列 ALTER TABLE [表名 ...

  7. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  8. 【C++】C/C++ 中 static 的用法全局变量与局部变量

    C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...

  9. php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?

    foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...

最新文章

  1. SVO: 视觉SLAM中特征点法与直接法结合
  2. 网络编程大小端的注意事项
  3. Python2与Python3的区别:
  4. [并发编程] - Executor框架#ThreadPoolExecutor源码解读02
  5. 请问,现在android流行什么开源框架?
  6. python3字符串转数字_Python3基础语法和基本数据类型
  7. 面向对象方法及软件工程——团队答辩
  8. Android 自定义ViewPager设置屏蔽左右滑动事件
  9. 【leetcode】1018. 可被 5 整除的二进制前缀
  10. TOMCAT如何配置域名,可以用本地服务进行测试
  11. 解锁WPS企业版,去广告,享会员服务
  12. linux中安装搜狗拼音输入法
  13. macbook word插入公式快捷键 输入阿拉伯数字快捷键 快速打开访达快捷键
  14. 动态规划法(入门)——最大正方形、最大长方形
  15. POJ1417 True Liars —— 并查集 + DP
  16. 你的数据库到底应该如何存储密码?
  17. AlBaath Collegiate Programming Contest (2015) 总结
  18. acorr_ljungbox(data, lags = 1)报错:ufunc 'isnan' not supported for the input types, and the inputs cou
  19. RS485总线灵魂问答,看你知道几个?
  20. 公司发了期权,我被坑了吗?

热门文章

  1. js创建对象的几种方法
  2. 中国行政区划信息JS库china-location
  3. centos6.5命令安装redis并设置redis自启动,可远程连接
  4. JAVA入门[4]-IntelliJ IDEA配置Tomcat
  5. 第13章代码《跟老男孩学习Linux运维:Shell编程实战》
  6. python 基础
  7. 理解MapReduce哲学
  8. 虚函数表指针,虚函数表
  9. datagrid加checkbox实现分页不丢失选择的记录 (转)
  10. 代码审查规范(试用版)