(转)C#中HashTable的使用

原创 2007年09月12日 16:18: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]);//排序后输出
 }

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

C# hashtable 转json

public static string HashtableToKson(Hashtable hr,int readcount=0)         {             string json...
  • panlishou1
  • panlishou1
  • 2014年02月19日 12:57
  • 3319

ASP.NET Hashtable输出JSON格式数据

代码如下: ArrayList eventList = new ArrayList(); for (int i = 0; i < 3;i++ )...
  • zdhlwt2008
  • zdhlwt2008
  • 2016年12月29日 08:54
  • 620

C#中集合ArrayList与Hashtable的使用

ArrayList: 一. 注意事项: 1.可以指定ArrayList集合的初始大小   var list = new ArrayList(10);//容纳10个元素  若不指定大小,则默认...
  • linukey
  • linukey
  • 2015年01月07日 23:07
  • 671

C#中ArrayList和HashTable

System.Collections.ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度,而不需要手动分配和管理内存 添加元素 ArrayList.Add(Obje...
  • u013598711
  • u013598711
  • 2015年07月16日 23:11
  • 432

简单方法hashtable持久化到xml文件中

.net framework中又可以持久化对象到xml中的类,但是我没有用过呀,也没有去看怎么用,于是自己写了个类: using System.Collections; using System.X...
  • SunLeibo
  • SunLeibo
  • 2011年09月27日 12:19
  • 2624

将List<HashTable>转为DataTable

public static DataTable Convert2DataTable(List list) { DataTable dt = new DataTable(); ...
  • wei_jie_zhang
  • wei_jie_zhang
  • 2014年05月09日 09:54
  • 1820

C# Hashtable 使用说明 以及 Hashtable和HashMap的区别[转]

一,哈希表(Hashtable)简述    在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value...
  • sibaison
  • sibaison
  • 2017年04月19日 12:58
  • 386

C#中HashTable的定义与使用方法

一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其...
  • xiangfan12
  • xiangfan12
  • 2016年09月06日 09:56
  • 1016

字符串通过hashtable来解决问题

http://blog.chinaunix.net/uid-25434387-id-3527923.html 题目:   在字符串中找出第一个只出现一次的字符串,如输入"abaccde...
  • jeffasd
  • jeffasd
  • 2016年06月01日 23:31
  • 379

C#中的Hashtable

1、别称:哈希表、键值对、关联数组 2、概述:     (1)、用于处理和表现类似Key/Value的键值对         (2)、key --- 可以是不同数据类型,但不能重名,必须满足...
  • qq_37750627
  • qq_37750627
  • 2017年04月27日 11:09
  • 2292
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(转)C#中HashTable的使用
举报原因:
原因补充:

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