c#

位置:IT落伍者 >> c# >> 浏览文章

C#中HashTable简介和使用用法


发布日期:2018年01月29日
 
C#中HashTable简介和使用用法

简介

名词介绍散列表(Hash table也叫哈希表)是根据关键码值(Key value)而直接进行访问的数据结构也就是说它通过把关键码值映射到表中一个位置来访问记录以加快查找的速度这个映射函数叫做散列函数存放记录的数组叫做散列表

HashTable 表的优点HashTable是SystemCollections命名空间提供的一个容器HashTable中的key/value均为object类型所以HashTable可以支持任何类型的key/value键/值对

HashTable的优点就在于其索引的方式速度非常快

哈希表的简单操作

在哈希表中添加一个keyvalue键值对HashtableObjectAdd(keyvalue);

在哈希表中去除某个keyvalue键值对HashtableObjectRemove(key);

从哈希表中移除所有元素 HashtableObjectClear();

判断哈希表是否包含特定键key HashtableObjectContains(key);

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

using System;

using SystemCollections; //file使用Hashtable时必须引入这个命名空间

class hashtable

{

public static void Main()

{

Hashtable ht=new Hashtable(); //file创建一个Hashtable实例

htAdd(Ee); //添加keyvalue键值对

htAdd(Aa);

htAdd(Cc);

htAdd(Bb);

string s=(string)ht[A];

if(htContains(E)) //file判断哈希表是否包含特定键其返回值为true或false

ConsoleWriteLine(the E keyexist);

htRemove(C); //移除一个keyvalue键值对

ConsoleWriteLine(ht[A]); //此处输出a

htClear(); //移除所有元素

ConsoleWriteLine(ht[A]); //file此处将不会有任何输出

}

}

遍历哈希表

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

for(DictionaryEntry de in ht) // fileht为一个Hashtable实例

{

ConsoleWriteLine(deKey); //deKey对应于keyvalue键值对key

ConsoleWriteLine(deValue); //deKey对应于keyvalue键值对value

}

对哈希表进行排序

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

ArrayList akeys=new ArrayList(htKeys); // file别忘了导入SystemCollections

akeysSort(); // file按字母顺序进行排序

for(string skey in akeys)

{

ConsoleWrite(skey + );

ConsoleWriteLine(ht[skey]); // 排序后输出

}

               

上一篇:C#中的匿名类型与隐式类型变量

下一篇:.NET LINQ数据转换