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

被折叠的 条评论
为什么被折叠?



