c#_hashtable使用说明

原创 2007年10月08日 01:16:00
一,哈希表(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);
 下面控制台程序将包含以上所有操作:
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,代码如下:
 for(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(); //按字母顺序进行排序
 for(string skey in akeys)
 {
   Console.Write(skey + ":");
   Console.WriteLine(ht[skey]);//排序后输出
 }


Power MTA 配置文件参数配置说明

max-msg-per-connection 所属节点: domain 类型: number 属性: 可选 默认值: 0 含义:指定单个连接中传递的最大消息数。 通常,每个连接传递尽可能多的消息是最有...
  • CSDN515
  • CSDN515
  • 2016年11月29日 16:39
  • 649

Python画3D图表

# coding:utf-8 from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import pandas...
  • guoxinian
  • guoxinian
  • 2017年12月28日 16:19
  • 21

高效e人--您最好的时间管理专家

经济发展越来越迅速,生活压力越来越大,尤其是白领阶层,忙碌的工作总是让他们无暇顾及其他事情,如父母的生日、传统节日,甚至是即将要做的非常重要的任务等等。为此,白领们总是为自己低下的工作效率感到烦恼不已...
  • sandyyou
  • sandyyou
  • 2015年12月07日 15:24
  • 248

Druid使用说明

数据库连接池有很多比如c3p0,dbcp等。今天我们说下druid连接池。 druid连接池文档被维护在githubweb.xml DruidWebStatFilter ...
  • cuisongliu
  • cuisongliu
  • 2015年10月20日 14:35
  • 614

性能测试技术调研

一、什么是性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作...
  • chenzi_zww
  • chenzi_zww
  • 2017年11月23日 16:11
  • 69

SAP中创建文本表的方法

文本表是 SAP 为适应多语言支持而设计的特别处理模式。它通过外键关系与主表关联,并且比主表多一个语言指示符字段做为主键,它的文本字段就可以对主表中同一个主键做出多种语言的描述。 下面用一个简单...
  • kinglvcha
  • kinglvcha
  • 2014年09月20日 10:33
  • 526

TODO:Windows10的使用感想及兼容Linux

TODO:Windows10的使用感想及兼容Linux 这段时间一直使用了Windows10,介绍一下本机配置,双核CPU,8G内存,C盘100G。把不必要的软件卸载掉之后,Windows10给...
  • sinat_36342775
  • sinat_36342775
  • 2017年02月10日 21:31
  • 299

seci-log 1.13 发布 简化了安装和程序底层结构做了调整

日志分析软件 seci-log 1.13发布,简化了安装和程序底层结构做了调整。去掉了mysql数据库,这样使日志占用空间减少了一半多。...
  • zhulinu
  • zhulinu
  • 2015年09月26日 13:42
  • 1297

MySQL使用说明

1. 开启mysql# /etc/init.d/mysqld start2.关闭mysql# /etc/init.d/mysqld stop //为了保证mysql的配置没有错,一定保证/etc/my...
  • zhangxuechao_
  • zhangxuechao_
  • 2015年08月07日 19:24
  • 356

Gson简要使用说明

gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段, 同时gson又可以通过使用annotation来灵活配置需要序列...
  • cnmilan
  • cnmilan
  • 2014年10月31日 10:33
  • 787
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#_hashtable使用说明
举报原因:
原因补充:

(最多只允许输入30个字)