HashTable的相关操作(HashTalbe浅谈)
来源:互联网 发布:淘宝店铺搜索不到店铺 编辑:程序博客网 时间:2024/05/29 11:31
中国有句古话“书上得来终觉浅 绝知此事要躬行”。很喜欢这句话。其实我们在很多时候,只是知道一种结构的大概含义。在一些文章中也看到过一些简单的应用。但是,却从来没有去亲自用过。
即使是暂时没有在开发实战中用过,至少也要写个Dome来证明你用过。只有这样,在真正用的时候才能有切入点。
了解一种知识,不能光知道它的名称。至少要动动手去写。
HashTable表示键/值对的集合。键不能为 nullNothingnullptrnull,但值可以。
命名空间:using System.Collections;
程序集: mscorlib(在 mscorlib.dll 中)
现在开始贴代码。介绍对HashTable的简单实用。
以下示例取自MSDN中,必要地方给予说明。
// 创建一个Hashtable
Hashtable openWith = new Hashtable();
// 向Hashtable中添加键/值对
openWith.Add(1, true); //键可以为Int,值可以为bool
openWith.Add("txt", "notepad.exe");//键可以为string,值可以为string
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");
我们看看HashTable的方法签名:
public virtual void Add(object key, object value);
可以看出HashTable增加项是很灵活的。因为键、值都为object类型。
注意:当向HashTable中添加重复的项时,会产生一个错误。(在添加键/值时,应该先检查该键是否存在)
// 获得HashTable的值-HashTable名[键],得到的是ojbect对象,需要强制类型转换
bool value = Convert.ToBoolean(openWith[1]);
string rtf= openWith["rtf"].ToString();
// 为HashTable对象赋值- HashTable名[键]=要赋予的值。
openWith["rtf"] = "winword.exe";
// 检验某个键是否存在
bool isExist =openWith.ContainsKey("ht")// 存在返回true,不存在false
// 遍历hashtable的键-值
foreach (DictionaryEntry de in openWith)
{
StringBuilder strSb=new StringBuilder();
strSb.AppendFormat("Key = {0}, Value = {1}", de.Key, de.Value);
}
// 获得hashtable的值集合
ICollection valueColl = openWith.Values;
foreach (string s in valueColl)
{
StringBuilder SB_values = new StringBuilder();
SB_values.AppendFormat("Value = {0}",s);
}
// 获得hashtable的键集合
ICollection keyColl = openWith.Keys;
foreach (string s in keyColl)
{
StringBuilder SB_keys = new StringBuilder();
SB_keys.AppendFormat("Key = {0}", s);
}
// 删除记录,根据键
openWith.Remove("doc");
注意:当向HashTable中添加和删除键/值时,应该先判断该键或者值是否存在,然后进行操作,以避免不必要的麻烦。
希望本文能为您带来一点帮助,如有帮助,请顶我,我会做的更好!如果您有更好的文章,请推荐!不胜感激!
- HashTable的相关操作(HashTalbe浅谈)
- HashTable相关操作实现
- 浅谈 Hashtable 的遍历
- 浅谈java集合类型的相关操作
- 关于HashTable的操作
- 浅谈HashTable
- 两个字符串包含hashtalbe的O(m+n)
- 浅谈一下数据库相关操作
- 浅谈Hashtable与Dictionary的异同
- 一个HashTable操作的程序
- cookie相关的浅谈
- HashTable相关操作实现(附完整源码)
- 第二十二篇:HashTable相关操作实现(附完整源码)
- 浅谈HashMap与HashTable
- 浅谈HashMap的原理及其与HashTable、HashSet的区别
- [c#基础知识]浅谈Hashtable与Dictionary的异同
- hashtable HashMap相关问题
- HashTable和HashMap的区别 -- JAVA 后台相关
- STAF Customize Service ---打Jar包
- [5.8] 时间
- 杭州盈高科技--安全接入
- Delphi图像处理 -- 高斯模糊
- Android核心分析(16)-----Android电话系统-概述篇
- HashTable的相关操作(HashTalbe浅谈)
- DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC宏
- JAVA面试题(2)
- java泛型
- 从DWR1.1官方文档,提取的些东西
- C中struct的对齐分析
- Android高手进阶教程(十)之----Android PopupWindow的使用!!!
- dwr配置篇web.xml
- ZXV10 H608B 设置自动拨号功能,和itv功能