博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#非泛型集合类-使用HashTable元素操作
阅读量:5958 次
发布时间:2019-06-19

本文共 2054 字,大约阅读时间需要 6 分钟。

在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/ Value键值对均为object类型,所以Hashtable可以支持任何类型的key /Value键值对。

和ArrayList相同,HashTable集合也有增、删、改、查等操作。给哈希表添加元素,使用Add()方法,示例代码如下:

Hashtable ht=new Hashtable();//创建哈希表

一、为哈希表添加元素
ht.Add("张三",1001);
ht.Add("李四",1002);
ht.Add("王五",1003);
二、删除哈希表中元素
删除哈希表中元素有两种方法,Clear()方法删除所有元素,Remove方法根据键来删除元素。
ht.Remove("赵敏");//删除键为赵敏的元素
ht.Clear;//删除所有元素
三、修改哈希表中元素
哈希表的键是不可以修改的,只能修改键对应的值。修改哈希表中的数据采用索引方式,按照键修改对应的值。下面代码将为“周芷若”的值修改为等号右边的值,示例代码如下:
ht["周芷若"]=1005;
四、访问哈希表中元素
访问哈希表元素时,可以直接通过键名来获取具体值。由于哈希表存储的元素都是Object数据类型,所以对访问的元素要注意类型转换。
string str=ht["张三"].ToString();
五、遍历哈希表
哈希表和ArrayList不同,不能通过索引访问,只能使用foreach来遍历集合中的元素。下面的代码获取哈希表的值:

//foreach遍历哈希表的值

foreach(Objcet str in ht.Value)
{
string s=(string)stu;//将对象强制转换
Console.WriteLine(s);//输出值
}
用foreach语句可以访问哈希表的值,也可以访问哈希表的键值。

//foreach遍历哈希表的键

foreach(Objcet str in ht.Keys)
{
string s=(string)stu;//将对象强制转换
Console.WriteLine(s);//输出值
}

使用字典对象及遍历哈希表集合,可以获取哈希表集合中的键和值。

//foreach遍历哈希表集合
foreach(DictionaryEntry myde in ht)
{
Console.WriteLine("\t{0}\t{1}",myde.Key,myde.Value);//输出键和值
}

下面看一下实例:

using System;
using System.Collections;
class Program
{
static void Main()
{
    //创建哈希表
    Hashtable ht = new Hashtable();
    ht.Add("banana", "香蕉");
    ht.Add("apple", "苹果");
    ht.Add("pineapple", "菠萝");
    ht.Add("orange", "桔子");
    //使用索引器查询
    string s = (string)ht["banana"];
    Console.WriteLine("使用索引器查询键为{0}", s);
    //使用键集合遍历哈希表
    Console.WriteLine("通过键遍历哈希表集合得到的值");
    foreach (string mykey in ht.Keys)
    {
      string s1 = (string)ht[mykey]; //将对象强制转换
      Console.WriteLine(s1); //输出值
    }
    //遍历集合中的元素获取值
    Console.WriteLine("通过遍历哈希表集合中的元素获取值");
    foreach (object obj in ht.Values)
    {
      string str = (string)obj; //将对象强制转换
      Console.WriteLine(str); //输出值
    }
    //使用字典遍历哈希表集合
    Console.WriteLine("通过字典遍历得到键和值");
    foreach (DictionaryEntry dic in ht)
    {
      //得到键和值,返回object类型,需进行数据类型转换。
      string key = (string)dic.Key;
      string value=(string)dic.Value;
      Console.WriteLine("\t{0}\t{1}",key,value); //输出键和值
    }

}

}

注意:哈希表中键值必须是唯一的,不能有相同的键,如果使用已存在的键值来存储数据,将会抛出异常。

转载地址:http://mvuax.baihongyu.com/

你可能感兴趣的文章
vuecli3创建项目
查看>>
版本控制工具——Git常用操作(上)
查看>>
5分钟构建无服务图片鉴黄web应用(基于FunctionGraph)
查看>>
神经科学研究所开发AI动作捕捉工具 以高精准度追踪动物动作
查看>>
vue组件之Tabs标签页
查看>>
ES6之变量的解构赋值
查看>>
用localStorage存储购物车数据实战
查看>>
“一带一路”为会展业带来新机遇
查看>>
Spring详解
查看>>
Go defer 知识点
查看>>
【本人秃顶程序员】如何在代码中应用设计模式
查看>>
当你凝视黑洞的时候,它已经被玩坏了
查看>>
fluent python 读书笔记 2--Python的序列类型2
查看>>
依赖冲突时的解决方法
查看>>
学习笔记5
查看>>
富人为什么越富,穷人为什么越穷
查看>>
电子商务java b2b b2c o2o平台
查看>>
(五)java spring cloud版b2b2c社交电商spring cloud分布式微服务-路由网关(zuul)
查看>>
零基础学小程序007---小程序获取用户openid
查看>>
两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践
查看>>