C#中Hashtable的用法

   在封装题库的时候,发现传实体很受限制,每个题型都需要建立不同的实体,这

样封装的时候就需要将实体一起封装,而且添加新题型的也不够灵活,这样就想到了

HashTable,让所有的题型都使用HashTable来传参,这样不同的题型只需要加载不同

的字段即可,下面来简单介绍一下HashTable的一些用法:

1.简介:

    .NET Framework中,HashtableSystem.Collections命名空间提供的一个容器,

用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分

大小写;value用于存储对应于key的值。Hashtablekeyvalue键值对均为object类型,

所以Hashtable可以支持任何类型的keyvalue键值对.

         注意:当你使用Hashtable时给参数赋值的时候,因为Hashtable传递的是object

型,所以需要将参数类型转换为你需要的类型。

2.简单用法:

  1.  在哈希表中添加一个keyvalue键值对:HashtableObject.Add(key,value);
  2.  在哈希表中去除某个keyvalue键值对:HashtableObject.Remove(key);
  3.  从哈希表中移除所有元素:                 HashtableObject.Clear(); 
  4.  判断哈希表是否包含特定键key        HashtableObject.Contains(key);

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

 

usingSystem;usingSystem.Collections; //使用Hashtable时,必须引入这个命名空间classhashtable{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或falseConsole.WriteLine("the E key exist");ht.Remove("C");//移除一个key/value键值对Console.WriteLine(ht["A"]);//此处输出aht.Clear();//移除所有元素Console.WriteLine(ht["A"]); //此处将不会有任何输出}}

 

3.遍历哈希表

遍历哈希表需要用到DictionaryEntryObject,代码如下: 

 

foreach(DictionaryEntryde in ht) //ht为一个Hashtable实例 
{ Console.WriteLine(de.Key);//de.Key对应于key/键值对key Console.WriteLine(de.Value);//de.Key对应于key/键值对 
} 

 

    以上是Hashtable的一些简单用法,做系统的时候主要用的就是添加键值对和查

Value值。不过Hashtable要求Key值得命名必须统一(尤其是大小写),传递出的参数

必须转换类型。

注:大小写问题待解决,下面博客在介绍。

 

转载于:https://www.cnblogs.com/pangblog/p/3424241.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kdbg调试linux汇编,Ubuntu 16.04安装Kdbg替代Insight实现汇编的调试

ibatis XML标签的含义selectKey: 有3个主要的属性: 1)resultClass:返回的主键的数据类型,跟sqlMap中的数据类型一致: 2)type:表示主键在insert之前或之后生成(取决于 ...raspberry 烧写镜像到SD卡刚开始接触树莓派,需要烧写系统镜像到SD卡,网上找了些资料,记录于此. ra…

Jenkins 使用 maven 出现C:\Windows\system32\config\systemprofile的解决

jenkins 使用 maven 出现 C:\Windows\system32\config\systemprofile 的原因是 Jenkins 服务启动的账号使用了系统的账号,在服务里改成具体的桌面用户账号即可。 If your command runs fine on Win command prompt as user X, then you should run Jenkins with the…

mediawiki禁止注册

只允许管理员代为注册,在LocalSettings.php中增加: $wgGroupPermissions array(); $wgGroupPermissions[’*’ ][’createaccount’] false; $wgGroupPermissions[’*’ ][’read’] true; $wgGroupPermissions[’*’ ][’edit’] false; $wgGroupPermissions[’…

在Linux下用源码编译安装apache2

Linux下安装一个软件,最好去看下它的官方guide,apache2.4的安装安装guide 0. installation guide http://httpd.apache.org/docs/2.4/install.html 然后是下载源码 1. download http2.4, 下载地址 下载好了以后,把它解压到一个路…

c语言第十五周答案,C语言考前练习试题及答案

C语言考前练习试题及答案天行健,君子以自強不息,地勢坤,君子以厚德载物。以下是小编为大家搜索整理的C语言考前练习试题及答案,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!一、选择题(每小题1分&#xff0…

表格存储技术方案实践及客户案例分享

表格存储是一款2014年10月份正式商业化的NoSQL数据存储服务,在商业化之前,早在2010年就在阿里云内部开始使用,云邮箱和云OS都是表格存储最早的一批用户。到目前,无论是在阿里集团内部还是在公共云环境上,在移动社交、金…

delphi 打开资源管理器并定位到指定目录下的文件

可以与 Explorer.exe 一起使用的命令行选项有:/n、/e、/root(加上一个对象)和 /select(加上一个对象)。 usesShellAPI;ShellExecute(Handle,nil,Explorer.exe,PChar(Format(/e,/select,%s, [GLogger.CurrFileName])),n…

psp前景与范围文档

前景与范围文档 文档状态: [ ]草稿 [ ]正式发布 [√]正在修改 当前版本版本1作者XXX,XX完成日期2013-11-14 1.业务需求 1.1应用背景 在规定时间内不能完成任务的情况时有发生,这对整个项目的研发带来了很大的困扰,阻碍了项目的进展速度.对于如何去分配给一个开发人员的任务量…

数字编码电位器c语言,数字电位器——x9c104

一些传统的电子设备是通过改变电位器的电阻来实现调整,比如灯的亮度、电机的转速等。如果想对这种设备进行智能改造但不大幅度改变设备内部的电器结构,我们需要电位器的电阻可通过单片机或微机进行控制,数字电位器就是这类设备。“我也是在项…

13.  Roman to Integer

2019独角兽企业重金招聘Python工程师标准>>> 见12转载于:https://my.oschina.net/datacube/blog/702856

SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式)...

SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式) 注:此实例无需添加数据控件,避免了一些繁琐的代码 实现效果如下: 读取数据和图片,并以每行…

Android 常用权限

添加WiFi以及访问网络的权限&#xff1a;<uses-permission android:name"android.permission.CHANGE_NETWORK_STATE" ></uses-permission><uses-permission android:name"android.permission.CHANGE_WIFI_STATE" ></uses-permission&…

c语言离散卷积编程,数电实验一 离散卷积的C语言编程.ppt

数电实验一 离散卷积的C语言编程.ppt实验一 离散卷积的C语言编程实验,DSP实验室,实验性质,综合设计性实验,实验目的,1 了解和认识常用的各种信号&#xff1b; 2 掌握卷积的定义和计算方法&#xff1b; 3 掌握在计算机中生成以及绘制信号序列图的方法。,实验原理,离散时间系统中…

openwrt上wifi探针的实现

openwrt上wifi探针的实现 探针是通过wifi搜集经过这个AP范围的手机的mac地址&#xff0c;没有什么深刻的东西&#xff0c;知乎上关于这个东西讨论的很多&#xff0c;有人觉得很有用&#xff0c;可以做很多增值的应用&#xff0c;有人觉得没啥用&#xff0c;不过这并不妨碍我们从…

Eclipse里做JBPM工作流gpd.xml中文乱码问题解决(包括控制台乱码解决)

该文章转至:http://jsczxy2.iteye.com/blog/1236552 修改eclipse安装跟目录下的eclipse.ini文件&#xff0c;在其中添加&#xff1a;-Dfile.encodingUTF-8如我添加后为&#xff1a;-showsplashorg.eclipse.platform--launcher.XXMaxPermSize256M-vmargs-Dosgi.requiredJavaVers…

irq4中断子程序c语言写法,AVR汇编程序参考

该AVR的汇编程序选自《M128》&#xff0c;程序中体现了AVR汇编的基本特点&#xff0c;仅供大家参考。该应用系统为一个带1/100秒的简易24小时制时钟&#xff0c;它在上电后能够自动从11时59分55秒00开始计时和显示时间。下图为简易时钟系统硬件电路图。图 简易24小时时钟硬件原…

技术的自我修炼

从今天开始记录自己的技术修炼之路&#xff0c;自勉成长&#xff01;转载于:https://blog.51cto.com/11822609/1796121

一步一步学Silverlight 2系列(6):键盘事件处理

一步一步学Silverlight 2系列&#xff08;6&#xff09;&#xff1a;键盘事件处理 概述 Silverlight 2 Beta 1版本发布了&#xff0c;无论从Runtime还是Tools都给我们带来了很多的惊喜&#xff0c;如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython&#xff0c;对J…

STM32堆栈溢出的问题

在程序中出现栈溢出的情况&#xff0c;就是分配局部变量时因为内存溢出而重启&#xff0c;局部变量分配在栈中&#xff0c;栈区域满了导致溢出&#xff0c;需要修改startup_stm32f10x_hd.s中&#xff0c;或startup_stm32f10x_ld.s,startup_stm32f10x_md.s,具体文件按要看CPU是否…

块分割,维特比算法小结

学习总结 在ER中&#xff0c;有一类算法依靠参考结构化数据库的模型实现&#xff0c;以便提高ER的速度。但是这类算法常常在运行中产生了大量重复计算&#xff0c;降低了效率。由此&#xff0c;通过介绍以下方法&#xff0c;来解决这个问题&#xff1a; 块分割 给定的字符串&am…