当前位置: 首页 > news >正文

C# Hashtable

目录

Hashtalbe的本质

申明

增           

遍历


Hashtalbe的本质

Hashtable(又称散列表) 是基于键的哈希代码组织起来的 键/值对
它的主要作用是提高数据查询的效率
使用键来访问集合中的元素

申明

需要引用命名空间 System.Collections

Hashtable hashtable = new Hashtable();


           

hashtable.Add(1, "123");
hashtable.Add("123", 2);
hashtable.Add(true, false);
hashtable.Add(false, false);

注意:不能出现相同键

           只能通过键去删除
            hashtable.Remove(1);


         删除不存在的键 没反应
            hashtable.Remove(2);

          或者直接清空
            hashtable.Clear();
          

通过键查看值,找不到会返回空
           
            Console.WriteLine(hashtable[1]);
            Console.WriteLine(hashtable[4]);//null
            Console.WriteLine(hashtable["123123"]);

查看是否存在
     根据键检测
            if( hashtable.Contains(2) )
            {
                Console.WriteLine("存在键为2的键值对");
            }
            if( hashtable.ContainsKey(2) )
            {
                Console.WriteLine("存在键为2的键值对");
            }

根据值检测
            if( hashtable.ContainsValue(12) )
            {
                Console.WriteLine("存在值为12的键值对");
            }

只能改 键对应的值内容 无法修改键


            Console.WriteLine(hashtable[1]);
            hashtable[1] = 100.5f;
            Console.WriteLine(hashtable[1]);

遍历

得到键值对 对数
            Console.WriteLine(hashtable.Count);

           1.遍历所有键
            foreach (object item in hashtable.Keys)
            {
                Console.WriteLine("键:"+item);
                Console.WriteLine("值:"+hashtable[item]);
            }

          2.遍历所有值
            foreach (object item in hashtable.Values)
            {
                Console.WriteLine("值:" + item);
            }

            3.键值对一起遍历
            foreach (DictionaryEntry item in hashtable)
            {
                Console.WriteLine("键:" + item.Key + "值:" + item.Value);
            }

            4.迭代器遍历法
            IDictionaryEnumerator myEnumerator = hashtable.GetEnumerator();
            bool flag = myEnumerator.MoveNext();
            while (flag)
            {
                Console.WriteLine("键:" + myEnumerator.Key + "值:" + myEnumerator.Value);
                flag = myEnumerator.MoveNext();
            }


class MonsterManager
{private  int id=0;private   Hashtable Monstertable = new Hashtable();private static MonsterManager instance=new MonsterManager();private MonsterManager(){ }public static MonsterManager Instance{get {return instance;}}public void AddMonster(){Monster monster = new Monster(id);Monstertable.Add(id, monster);id++;}public void DelMonster(int monsterId){(Monstertable[monsterId] as Monster).Dead();Monstertable.Remove(monsterId);}public void Show(){foreach (object  itme in Monstertable.Keys){Console.WriteLine((Monstertable[itme]as Monster).Id);}}}class Monster
{public  int Id { get; set; }public string Name { get; set; }public Monster(int id){Id = id;}public void Dead(){Console.WriteLine("id为"+Id+"的怪兽死亡");}}class Program
{public   static void Main(){for (int i = 0; i < 5; i++){MonsterManager.Instance.AddMonster();}MonsterManager.Instance .DelMonster(0);MonsterManager.Instance .DelMonster(1);MonsterManager.Instance .Show ();}}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【FESCO福利专区-注册安全分析报告-无验证方式导致安全隐患】
  • 嵌入式智能移动机器人导航系统:状态空间控制算法、路径规划算法、PID控制算法(代码示例)
  • Java学习Day34:图书管理小项目
  • 【威锋网-注册安全分析报告-无验证方式导致安全隐患】
  • ai回答 部署前端项目时需要使用ssh吗
  • 结构开发笔记(五):solidworks软件(四):绘制36x36方块摄像头基座
  • 云手机在亚马逊店铺运营中能发挥什么作用
  • 统计Statistics | AnyLogic 帮助
  • WPS宏实现表格合并功能
  • Excel的使用总结2
  • 网络抓包测试
  • 一文了解机器学习顶会ICML 2024的研究热点
  • Excel技巧(一)
  • 周边乡村游小程序的设计
  • 波导阵列天线单元 学习笔记3 基于空气填充双模馈网的双圆极化膜片天线阵列
  • JavaScript-如何实现克隆(clone)函数
  • docker-consul
  • Git初体验
  • jQuery(一)
  • js数组之filter
  • magento 货币换算
  • Python进阶细节
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • sublime配置文件
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 阿里云前端周刊 - 第 26 期
  • 笨办法学C 练习34:动态数组
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 欢迎参加第二届中国游戏开发者大会
  • 记一次用 NodeJs 实现模拟登录的思路
  • 看域名解析域名安全对SEO的影响
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前言-如何学习区块链
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 学习JavaScript数据结构与算法 — 树
  • python最赚钱的4个方向,你最心动的是哪个?
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • !$boo在php中什么意思,php前戏
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #数据结构 笔记三
  • ${factoryList }后面有空格不影响
  • (1)Hilt的基本概念和使用
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (175)FPGA门控时钟技术
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (SERIES12)DM性能优化
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (八)c52学习之旅-中断实验
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks