Files
Csharp/C#进阶/Lesson4_Hashtable/Program.cs
T

110 lines
3.4 KiB
C#
Raw Normal View History

2025-10-11 19:30:38 +08:00
using System.Collections;
namespace Lesson4_Hashtable
{
internal class Program
{
static void Main(string[] args)
{
#region 知识点一 Hashtable的本质
//Hashtable(又称散列表)是基于键的哈希代码组织起来的键/值对的集合。
//它的主要作用是提高数据查询的效率
//使用键来快速查找对应的值,而不需要遍历整个集合。
#endregion
#region 知识点二 声明
//需要引用system.collections命名空间
Hashtable hashtable = new Hashtable();
#endregion
#region 知识点三 增删查改
//只能通过键来操作值
//增
hashtable.Add("001", "张三");
// ↑键 ↑值
hashtable.Add("002", "李四");
hashtable.Add(true, false);
hashtable.Add(false, false);
//注意:不能出现相同的键
//删
//1.只能通过键来删除
hashtable.Remove("001");
//2.删除不存在的键不会报错也不会有任何反应
hashtable.Remove("003");
//3.清空
hashtable.Clear();
hashtable.Add(1, "张三");
hashtable.Add(2, "李四");
hashtable.Add(3, false);
hashtable.Add(true, false);
//查
//1.通过键来查找值,找不到返回null
Console.WriteLine(hashtable[1]);//找键值为1的值
Console.WriteLine(hashtable[4]);//不存在,返回null
Console.WriteLine(hashtable[true]);//找键值为true的值
//2.查看是否存在
//根据键检测
if(hashtable.ContainsKey(2))
{
Console.WriteLine("存在键为2的元素");
}
if(hashtable.ContainsKey(4))
{
Console.WriteLine("存在键为4的元素");
}
//根据值检测
if(hashtable.ContainsValue("李四"))
{
Console.WriteLine("存在值为李四的元素");
}
//改
hashtable[1] = "王五";//修改键为1的值
#endregion
#region 知识点四 遍历
//1.对数
Console.WriteLine(hashtable.Count);
//2.遍历所有键
foreach (object item in hashtable.Keys)
{
Console.WriteLine("键"+item);
Console.WriteLine("值"+hashtable[item]);
}
//3.遍历所有值
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();
}
#endregion
#region 知识点五 装箱拆箱
//一样的
#endregion
}
}
}