20230705_102952 csharp 双列集合 HashTable的使用

本文介绍了C#编程中双列集合HashTable的使用方法,包括创建、添加元素、查找、修改、遍历键值对以及删除元素的操作。通过快递仓库的比喻,解释了无序容器的特点和常见操作。

20230705_102952 csharp 双列集合 HashTable的使用

双列集合模型

在这里插入图片描述

无序容器的特点

数据没有下标,不能够通过下标位置编号来找的

这些编号的快递不一定是顺着放在一起的
3-1-001
3-1-002
3-1-003

如果要获取数据
只能通过类似于“取件码”的编码来获取

一个包裹对应一个取件码

无序容器的用法

在这里插入图片描述

无序容器的使用

导包

using System.Collections;

新建一个菜鸟驿站仓库
名字叫做cn
它主要存放快递的
我们的快递是通过取件码来取货的

Hashtable cn = new Hashtable();

货车送来了三个物品
分别是

蓝球,4-3-103
排球,5-3-451
平板,7-2-14

            cn.Add("4-3-103", "蓝球");
            cn.Add("5-3-451", "排球");
            cn.Add("7-2-14", "平板");

查看5-3-451这个编号对应的是什么物品

Object temp = cn["5-3-451"];

工作人员发现贴牌贴错了
5-3-451这个标它应的是足球,不是排球
现在需要把这个标对应的物品改成,足球

cn["5-3-451"] = "足球";

遍历需求

下班了,要盘点一下货物有哪些
需要知道有哪些货,以及这些货的编号
按照下面的格式输出:
bbbb-xxxxx
bbbb-xxxxx
一行一个数据信息

遍历1 获取所有的值

需明确

双列集合.Values是什么

示例 获取双列集合中的所有值

            // cn.Values;  // [xx,xx,xx]
             Console.WriteLine("-----遍历值------");
             foreach (Object item in cn.Values)
             {
                 Console.WriteLine(item);
             }

遍历2 获取所有的键

需明确

双列集合.Keys是什么

示例 打印输出双列集合中的所有的键

            // cn.Keys;  [编号,编号,编号]
             foreach (Object key in cn.Keys)
             {
                 Console.WriteLine(key);
             }

遍历3 同时输出键与值

只要拿到了键,就可以获取值

根据遍历2的代码继续完善

示例代码

            // cn.Keys;  [编号,编号,编号]
             foreach (Object key in cn.Keys)
             {
                 Object val = cn[key];
                 // 拼接字符串
                 String res = String.Format("{0}-{1}",key,val);
                 Console.WriteLine(res);
             }

遍历4 遍历得到键值对对象

直接对双列集合对象进行遍历
可以得到一个又一个的成员
这个成员是DictionaryEntry对象
该对象具有Key属性,可以获得键
该对象具有Value属性,可以获得值

             foreach (DictionaryEntry entry in cn)
             {
                 // entry是一个键值对的对象
                 Object key = entry.Key;
                 Object val = entry.Value;
                 // 格式化拼接
                 String res = String.Format("{0}-{1}", key, val);
                 Console.WriteLine(res);

             }

1,判断值在不在双列集合中

bool b = 双列集合.ContainsValue(成员);

示例

             // 搜索乒乓球在不在
             bool a = cn.ContainsValue("乒乓球");
             Console.WriteLine(a);

2,判断键在不在

bool b = 双列集合.ContainsKey();

示例

            // 搜索取件码是不是正确的
             bool b = cn.ContainsKey("5-33-451");
             Console.WriteLine(b);

有一个人带着他的取件码过来
把货物取走了
取走后要从仓库中把它清除

双列集合.Remove();

示例 根据取件码提走内容

            // 删除数据
             cn.Remove("5-3-451");

清空双列集合

cn.Clear();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值