C#中HashTable的用法
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的用法相关推荐
- C#中NameValueCollection类用法详解
C#中NameValueCollection类用法详解,1.NameValueCollection类集合是基于 NameObjectCollectionBase 类. 但与 NameObjectCol ...
- 关于java的集合类,以及HashMap中Set的用法!
來源:http://hi.baidu.com/fyears/blog/item/52329711622e007ccb80c465.html 关于java的集合类,以及HashMap中Set的用法! 2 ...
- C# 哈希表(Hashtable)用法笔记
一.什么是Hashtable? Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对.它使用键来访问集合中的元素. 当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值.哈 ...
- jsp中用java写标签id_jsp中自定义标签用法实例分析
本文实例讲述了jsp中自定义标签用法.分享给大家供大家参考.具体如下: 这里简单的写了一个自定义标签,自己定义标签的好处就是在jsp页面中可以使用自己定义的功能,完全与Java代码分离 1. tld文 ...
- viewstate 解码 php,.NET_asp.net中ViewState的用法详解,在web窗体控件设置为runat = serv - phpStudy...
asp.net中ViewState的用法详解 在web窗体控件设置为runat = "server",这个控件会被附加一个隐藏的属性_ViewState,_ViewState存放了 ...
- mysql中change用法,mysql 中alter的用法以及一些步骤
mysql 中alter的用法以及一些方法 在用到alter的时间,查到了这个文章,就copy下来了,详细进入下面链接: MySQL之alter语句用法总结 1:删除列 ALTER TABLE [表名 ...
- mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法
Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...
- 【C++】C/C++ 中 static 的用法全局变量与局部变量
C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...
- php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?
foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...
最新文章
- SVO: 视觉SLAM中特征点法与直接法结合
- 网络编程大小端的注意事项
- Python2与Python3的区别:
- [并发编程] - Executor框架#ThreadPoolExecutor源码解读02
- 请问,现在android流行什么开源框架?
- python3字符串转数字_Python3基础语法和基本数据类型
- 面向对象方法及软件工程——团队答辩
- Android 自定义ViewPager设置屏蔽左右滑动事件
- 【leetcode】1018. 可被 5 整除的二进制前缀
- TOMCAT如何配置域名,可以用本地服务进行测试
- 解锁WPS企业版,去广告,享会员服务
- linux中安装搜狗拼音输入法
- macbook word插入公式快捷键 输入阿拉伯数字快捷键 快速打开访达快捷键
- 动态规划法(入门)——最大正方形、最大长方形
- POJ1417 True Liars —— 并查集 + DP
- 你的数据库到底应该如何存储密码?
- AlBaath Collegiate Programming Contest (2015) 总结
- acorr_ljungbox(data, lags = 1)报错:ufunc 'isnan' not supported for the input types, and the inputs cou
- RS485总线灵魂问答,看你知道几个?
- 公司发了期权,我被坑了吗?