最近做的一个购物商城的项目,其中购物车的部分需要用到Hashtable来保存用户购买的商品,所以在这里对Hashtable哈希表的知识做以下总结.
1,因为Hashtable是在命名空间System.Collections下,所以首先得引用命名空间System和System.Collections,代码如下:
using System;
using System.Collections;
2,Hashtable的创建,添加数据(书面说法叫初始化),设置和获取数据以及各种方法的使用,具体代码如下:

class Example
{
public static void Main()
{
//實例化一個Hashtable對象
Hashtable ht = new Hashtable();
//利用Add方法向Hashtable中添加數據.
ht.Add("01", "麥子");
ht.Add("02", "科比");
ht.Add("03", "韋德");
ht.Add("04", "喬丹");
ht.Add("05", "波什");
//當向Hashtable中添加一個已經存在的key時拋出異常.
try
{
ht.Add("01", "mcgrady");
}
catch
{
Console.WriteLine("key=\"01\"的元素已經存在!");
Console.ReadKey();
}
//可以通過key取得Hashtable的value,形式如:ht["01"]
Console.WriteLine("key=\"01\"對應的value={0}",ht["01"]);
Console.ReadKey();
//可以通過key修改其value值.
ht["01"] = "mcgrady";
Console.WriteLine("key=\"01\",value={0}",ht["01"]);
Console.ReadKey();
//如果key不在當前Hashtable中,則在當前Hashtable中增加一個鍵值對.
ht["06"] = "羅伊";
Console.WriteLine("key=\"06\",value={0}", ht["06"]);
Console.ReadKey();
//利用ContainsKey方法檢測key在當前Hashtable中是否存在,通常用于向Hashtable中插入數據之前檢測key是否存在,如果不存在才執行插入操作.
if (!ht.ContainsKey("07"))
{
ht.Add("07","皮爾斯");
Console.WriteLine("key=\"07\",value={0}", ht["07"]);
Console.ReadKey();
}
Console.WriteLine(); //打印一個空行.
//利用foreach循環來遍歷輸出Hashtable中的數據.
foreach (DictionaryEntry de in ht)
{
Console.WriteLine("key={0},value={1}", de.Key,de.Value);
Console.ReadKey();
}
//使用values屬性取得所有的value集合.
ICollection ValueColl = ht.Values;
foreach (string s in ValueColl)
{
Console.WriteLine("value={0}",s);
Console.ReadKey();
}
//使用keys屬性取得所有的key集合.
ICollection KeyColl = ht.Keys;
foreach (string k in KeyColl)
{
Console.WriteLine("key={0}", k);
Console.ReadKey();
}
//使用Remove方法移除帶指定key的元素.
Console.WriteLine("移除key為\"01\"的元素");
ht.Remove("01");
if (!ht.ContainsKey("01"))
{
Console.WriteLine("key為\"01\"的元素已經被移除了!");
Console.ReadKey();
}
}
}
以上是我的总结,欢迎各位园友与我交流,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架