C#中Hashtable的用法

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

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

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

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

在.NET Framework 中,Hashtable 是System.Collections 命名空间提供的一个容器,

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

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

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

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

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

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

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或false

        Console.WriteLine("the E key exist");

       ht.Remove("C");//移除一个key/value键值对

       Console.WriteLine(ht["A"]);//此处输出a

       ht.Clear();//移除所有元素

       Console.WriteLine(ht["A"]); //此处将不会有任何输出

  }

}

遍历哈希表需要用到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 值得命名必须统一(尤其是大小写),传递出的参数

必须转换类型。

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

Original: https://www.cnblogs.com/pangblog/p/3424241.html
Author: pangbangb
Title: C#中Hashtable的用法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/552926/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Javaweb学习-HTML

    ; ; 重新开始HTML,之前学的都忘了 posted @2022-03-24 21:27 HelloHui 阅读(7 ) 评论() 编辑 Original: https://ww…

    技术杂谈 2023年6月21日
    089
  • 【源码笔记】构建Spring源码环境

    IDEA构建Spring源码,不成功你来抓我 posted @2022-07-14 22:43 daheww 阅读(17 ) 评论() 编辑 Original: https://w…

    技术杂谈 2023年7月24日
    092
  • ETCD分布式存储部署

    一、ETCD 概述 ETCD 是一个分布式一致性k-v存储系统,可用于服务注册发现与共享配置。具有一下优点: 简单: 相比于晦涩难懂的paxos算法,etcd基于相对简单且易实现的…

    技术杂谈 2023年7月10日
    089
  • 通过graylog output 模式进行graylog的联邦以及升级处理

    很多时候我们需要将graylog 系统的日志转发到另外一个系统,比如旧版本的到新版本,或者老版本缺少能力,需要使用新版本的能力基于graylog 的output 就可以解决 参考方…

    技术杂谈 2023年5月31日
    077
  • 努力的去帮助他人

    天道运而无所积,故万物成;帝道运而无所积,故天下归;–庄子《天道篇》 知识分享才能成长,财富流动才能更多;努力的去帮助每一个人,自己也会收获更多的快乐;不要为生活琐事在…

    技术杂谈 2023年7月23日
    074
  • 只有程序员才能读懂的西游记

    一、我佛造经传极乐 话说我佛如来为度化天下苍生,有三藏真经,可劝人为善。 就如图中所示,真经所藏之处,在于云端。佛祖所管辖之下,有四个区域Region,称为四大部洲, 一是东胜神洲…

    技术杂谈 2023年6月22日
    075
  • 「萌新指南」SOA vs. 微服务:What’s the Difference?

    实话实说,在我还没有实习之前,我是连 SOA 是啥都不知道的,只听说过微服务,毕竟微服务实在太火了,想不知道都难,我觉得实习的时候肯定也是微服务,进组之后发现是 SOA 架构,当时…

    技术杂谈 2023年7月24日
    086
  • 统一的Json组件和csv下载组件

    Json组件 规范Json接口格式 Controller中一律返回 Java object,组件将自动转换数据格式,满足Json接口格式 统一处理Json接口中出现的异常,cont…

    技术杂谈 2023年6月1日
    083
  • VS Code 连接访问本地主机上的Docker容器

    使用VS Code编辑器修改调试代码很方便,将它与Docker容器结合起来更会大幅提升开发效率。其实VS Code连接本地主机上的Docker容器要比远程连接服务器上的Docker…

    技术杂谈 2023年7月11日
    089
  • 《一步到位玩透Ansible》专栏章节目录

    现在这个专栏的内容已经请求下架,所有内容完全免费发布在我的博客中:https://www.junmajinlong.com/ansible/index/。 Original: ht…

    技术杂谈 2023年5月31日
    0100
  • 基于jsp+servlet的银行信贷管理系统。

    运行环境,jdk1.8或者jdk1.7、tomcat8或者tomcat8.5、mysql5.7、eclipse、myeclipse开发环境。 1、🐧1748741328,基于jsp…

    技术杂谈 2023年5月31日
    098
  • 使用plantuml,业务交接就是这么简单

    使用plantuml,业务交接就是这么简单 你好,我是轩脉刃。 最近交接了一个业务,原本还是有挺复杂的业务逻辑的,但发现交接过来的项目大有文章,在项目代码中有一个docs文件夹,里…

    技术杂谈 2023年6月1日
    095
  • Python数据分析–Numpy常用函数介绍(8)–Numpy中几中常见的图形

    在NumPy中,所有的标准三角函数如sin、cos、tan等均有对应的通用函数。 一、利萨茹曲线 (Lissajous curve)利萨茹曲线是一种很有趣的使用三角函数的方式(示波…

    技术杂谈 2023年7月25日
    073
  • go逃逸分析

    我们在写代码的时候,有时候会想这个变量到底分配到哪里了?这时候可能会有人说,在栈上,在堆上。信我准没错… 但从结果上来讲你还是一知半解,这可不行,万一被人懵了呢。今天我…

    技术杂谈 2023年5月30日
    097
  • 迟来的2020年终总结–做历史的见证者

    拖更的这些天我一直有在反思,这个总结我到底该怎么去描绘我过去这一年的经历,我似乎也没有做出一件惊天动地的大事,过去立下的的flag似乎也没有一一实现,我的很多思考和想法只是存在于大…

    技术杂谈 2023年5月31日
    077
  • Flink 资源管理详解

    大家好,我是小寒~ 在 Flink 中提交作业到 Flink 集群后, Flink 集群是如何为作业分配资源,以及如何管理集群资源的呢?今天我们就来聊一聊 Flink 资源管理相关…

    技术杂谈 2023年7月24日
    094
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球