关于 Hashtable

yunsongzh 2006-11-20 10:35:02
我定义了一个 Hashtable ht,并向里面加入了一些键值对,但我最后怎么访问其中的键和值呢。键和值我都需要。
谢谢了!
...全文
125 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunsongzh 2006-11-27
  • 打赏
  • 举报
回复
太谢谢了,你们真厉害!
灰太狼 2006-11-21
  • 打赏
  • 举报
回复
liujia_0421()
太強了。
dyw31415926 2006-11-21
  • 打赏
  • 举报
回复
liujia_0421() ( )已经讲得很清楚了,我来学习d
liujia_0421 2006-11-20
  • 打赏
  • 举报
回复
讲得很清楚了,自己看下吧....
liujia_0421 2006-11-20
  • 打赏
  • 举报
回复
一,哈希表( 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] );//排序后输出
}
woyaomoney 2006-11-20
  • 打赏
  • 举报
回复
IDictionaryEnumerator enumerator = thProduct.GetEnumerator();
while (enumerator.MoveNext())
{
arrKey.Add("@"+enumerator.Key.ToString()); // Hashtable关健字
arrValue.Add(enumerator.Value.ToString()); // Hashtable值
}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧