C# 中 Hashtable 学习笔记

news/2025/10/31 11:47:41/文章来源:https://www.cnblogs.com/LunaNorth/p/19179348

1. 基础概念与用法

1.1 什么是 Hashtable?

Hashtable(哈希表) 是 C# 中一种键值对(Key-Value)集合,用于通过唯一的键(Key) 快速查找对应的值(Value)。

  • 键(Key)不能为 null,值(Value)可以为 null
  • 内部基于哈希算法实现,查找效率高。
  • 属于 System.Collections 命名空间(非泛型集合)。
  • 注意:在现代 C# 开发中,更推荐使用泛型版本 Dictionary<TKey, TValue>,但理解 Hashtable 有助于学习集合演进历史和底层原理。

1.2 常用方法与属性

方法/属性 说明
Add(key, value) 添加一个键值对(键不能重复)
Remove(key) 根据键删除对应项
ContainsKey(key) 判断是否包含指定键
ContainsValue(value) 判断是否包含指定值(效率较低)
Keys 获取所有键的集合
Values 获取所有值的集合
Count 获取元素个数

1.3 简单示例

using System;
using System.Collections;class Program
{static void Main(){// 创建 HashtableHashtable ht = new Hashtable();// 添加键值对ht.Add("name", "小明");ht.Add("age", 20);ht.Add("city", "北京");// 访问值(需强制类型转换)string name = (string)ht["name"];int age = (int)ht["age"];Console.WriteLine($"姓名:{name},年龄:{age}");// 遍历 Hashtableforeach (DictionaryEntry entry in ht){Console.WriteLine($"{entry.Key}: {entry.Value}");}}
}

⚠️ 注意:由于 Hashtable 是非泛型集合,存储的是 object 类型,取出时必须显式转换类型,容易出错。


2. 进阶知识点

2.1 Hashtable vs Dictionary<TKey, TValue>

特性 Hashtable Dictionary<TKey, TValue>
类型安全 ❌(存储 object) ✅(编译时检查类型)
性能 稍慢(需装箱/拆箱) 更快(无装箱拆箱)
泛型支持
线程安全 ✅(部分方法) ❌(默认不安全)
推荐使用 旧项目或特殊需求 现代开发首选

💡 建议:除非维护老代码,否则优先使用 Dictionary

2.2 性能特点

  • 查找、插入、删除的平均时间复杂度为 O(1) (常数时间),非常高效。
  • 但当哈希冲突严重或负载因子过高时,性能会下降。
  • 装箱/拆箱开销:因为存储的是 object,值类型(如 int)会被装箱,取出时拆箱,影响性能。

2.3 线程安全性

  • Hashtable 的部分方法是线程安全的

    • 多个读操作可以并发进行。
    • 读写操作不能同时进行。
  • 可通过 Hashtable.Synchronized(new Hashtable()) 创建线程安全包装器。

  • 但现代开发中更推荐使用 ConcurrentDictionary<TKey, TValue>(来自 System.Collections.Concurrent)处理并发场景。


3. 实际工作中的使用场景

虽然 Hashtable 已逐渐被 Dictionary 取代,但在某些场景仍有价值:

3.1 适合使用 Hashtable(或 Dictionary)的业务场景

  1. 缓存配置信息
    比如:将数据库中的“国家代码 → 国家名称”映射加载到内存,快速查询。

    ht.Add("CN", "中国");
    ht.Add("US", "美国");
    
  2. 用户会话管理(旧式 Web 应用)
    在 ASP.NET Web Forms 中,Session 底层曾使用类似 Hashtable 的结构存储用户数据。

  3. 动态属性存储
    当对象属性不确定时,可用 Hashtable 临时存储键值对(如解析 JSON 前的中间结构)。

  4. 去重与快速查找
    利用键的唯一性,避免重复数据(如记录已处理的订单ID)。

🚫 不适合的场景

  • 需要强类型安全的项目(用 Dictionary)。
  • 高并发写入场景(用 ConcurrentDictionary)。
  • 需要保持插入顺序(Hashtable 不保证顺序,可用 OrderedDictionaryDictionary + List)。

总结

项目 说明
优点 查找快、支持任意类型键值、部分线程安全
缺点 非泛型、需类型转换、性能不如 Dictionary、不保证顺序
学习建议 理解原理即可,实际开发优先使用 Dictionary<TKey, TValue>

🌟 一句话记住
Hashtable 是“老式键值对容器”,快但不安全;Dictionary 是“现代升级版”,快又安全!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/951618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

清理祖传 AK 不怕炸锅:基于 UModel 的云监控 2.0 身份凭证观测实践

在云时代,AccessKey(AK)、Role(角色)是企业在云上进行身份认证和资源操作的“数字钥匙”。它们被广泛用于各种自动化工具、应用程序和 CI/CD 流程中。然而,随着业务的快速发展,AK、Role 的数量可能迅速膨胀,其…

Ubuntu笔记本盖上不休眠

nano /etc/systemd/logind.conf HandleLidSwitch=ignoreHandleLidSwitchDocked=ignore systemctl restart systemd-logind

背包问题千千结:遍历顺序、内外循环,我们该如何思考?

背包问题千千结:遍历顺序、内外循环,我们该如何思考?背包问题中“遍历方向”与“内外循环”对结果的影响总结 核心映射关系表(简洁版)问题类型 内外循环顺序 背包容量遍历方向 结果特征(核心影响) 典型题目01背…

2025年GEO搜索企业权威推荐榜单:GEO广告/GEO排名/大模型GEO源头企业精选

随着生成式AI搜索生态的快速发展,GEO(生成式引擎优化)行业已成为企业抢占下一代流量入口的核心战场。据第三方数据显示,2025年国内GEO服务市场规模已突破42亿元,年增长率高达38%,但仅15% 的企业具备跨平台优化能…

2025年10月遗产继承律师推荐榜:五强对比与专业评测

“父亲刚走,兄弟姐妹就房产份额争执不下”“母亲留下代书遗嘱,却被质疑无效”“外籍子女如何继承国内股权”——遗产继承纠纷往往同时触发法律、税务、情感三重高压线。2024年《婚姻家事法律服务行业白皮书》显示,全…

2025年河北关键词排名查询机构权威推荐榜单:seo关键词排名优化/关键词seo排名 /关键词优化排名源头机构精选

在流量竞争白热化的2025年,河北企业正通过专业关键词优化抢占市场先机。 在数字化营销浪潮的推动下,关键词排名优化已成为企业获取在线流量、提升品牌曝光的核心手段。据行业数据显示,2025年河北地区关键词优化服务…

2025年防爆正压柜厂家权威推荐榜单:防爆控制柜/粉尘防爆柜/防爆正压型小屋源头厂家精选

在石油、化工等高风险工业领域,防爆正压柜作为保障安全生产的关键设备,其市场需求与技术要求持续提升。该类设备通过维持柜内高于外部环境的气压,有效防止易燃易爆气体、粉尘进入,从而避免电火花引发爆炸事故。行业…

CANape的CASL工具箱

在汽车电子 ECU(电子控制单元)开发与测试领域,CANape 是核心的测量、校准与诊断工具,而其专属的 CASL(Calculation and Scripting Language)语言,凭借接近 C 语言的语法及内置功能库,成为实现流程自动化、交互…

2025年10月25+抗老精华产品口碑榜:五款高回购单品对比评测

25岁像一条悄悄拉开的分水岭:熬夜后的暗沉、毛孔的隐约扩张、底妆不再服帖,都在提醒“初老”已来。小红书与《2024中国护肤消费白皮书》交叉数据显示,25至34岁人群把“抗老”列为精华购买首因,占比高达68%,其中“…

基础算法(四)堆排序

基础算法(四)堆排序一 堆排序 堆排序是一种非常高效且独特的排序算法,它巧妙地将数据结构中的“堆”应用于排序过程。 1.1 特性介绍 堆排序特性总结特性 说明核心思想 利用堆这种数据结构进行选择排序。将待排序列构…

第6章:工作流 (Workflow):编排复杂的业务逻辑 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年皮带称厂家权威推荐榜单:装载机秤/螺旋秤/定量给料机源头厂家精选

在工业自动化与智能化飞速发展的今天,皮带秤作为散状物料连续计量、过程控制和贸易结算的核心设备,其精度与稳定性直接关系到企业的生产效率与成本控制。根据行业调研数据,2024年中国工业自动计量设备市场规模已突破…

2025年led全彩显示屏制造商权威推荐榜单:led数字显示屏/工业显示屏/led异形显示屏源头厂家精选

在数字经济发展和超高清视频需求增长的推动下,2025年全球LED显示屏市场规模预计达到79.71亿美元,年复合增长率保持在7% 左右。中国作为全球最大的LED显示屏生产和消费市场,正推动行业从“硬件显示”向“智慧交互”加…

全新升级!山海鲸4.6.3版本正式亮相

产品更新概览 功能修复: 修复组件右键菜单中部分选项无效问题; 修复数据源拖动调整顺序表现异常问题; 修复发布链接所带项目参数未应用问题; 修复鲸孪生第一人称、第三人称相机已知问题; 修复部分二维图标的已知问…

2025年中国玻璃钢管道厂家排名:高性价比玻璃钢管道厂家深度测评

TOP1推荐:北京润峰玻璃钢有限公司 评价指数:★★★★★ 口碑评分:98分 行业表现:A++++级 介绍:北京润峰玻璃钢有限公司电话号码:13701379372,以环保为己任,以客户需求为主导。专注生产废气收集处理设备,像脱硫…

刚刚 Cursor2.0炸裂发布!这3大亮点必学

从 1.0 到 2.0 其实只有几个月的时间,Cursor 的进化速度真的很快。大家好,我是程序员鱼皮。刚刚 Cursor 2.0 终于来了,绝对炸裂! 下面我带大家实操 Cursor 2.0 更新的几大核心功能,看看怎么用它大幅提高开发效率。…

2025年10月中型挖掘机品牌推荐:五强综合榜对比排行

如果你正负责一条市政道路扩建项目,工期紧、油价高、环保考核严,选一台“吃得少、干得快、毛病少”的中型挖掘机就成了工地盈亏的分水岭。2025年国内20-29吨级挖掘机销量已占挖机总量38%,但用户调研显示,油耗成本仍…

AT_arc195_d [ARC195D] Swap and Erase

有一个很关键的结论是:每个数最多交换一次,不会存在连锁交换。 有了这个结论,我们可以设 \(f_{i, 0/1}\) 表示到了 \(i\) 到底最后交没交换,转移显然是简单的,答案就是颜色段个数。 好,然后我们来说明这个结论的…

ubuntu24.04本地部署stable-diffusion-v1.5

周末尝试在我的电脑上本地部署stable-diffusion-v1.5这里做个记录 我的ubuntu版本是24.04, 为了在本地用上AI如文生图等尝试在本地部署stable-diffusion 先部署 Stable Diffusion WebU, 它是AI绘画的环境和框架, 包括…

线段树题解

P6025 线段树 ZKY解题思路 这题十分在考场上十分坑,调了1个多小时后结果是题目出锅了,现在说一下我的做法。 10pts 暴力,在这里不展开了。 40pts 对于一珂线段树,我们只要走最大的那条路,并得到最终节点坐标即可。具体…