c# HashTable和Dictionary的区别?

能解释的详细些么?最好多聊聊哈希表的特殊之处,和哈希表的感念!HashTable是Dictionary的子类是么?我调试一下感觉一样啊!可是我为Dictionary赋值的... 能解释的详细些么?最好多聊聊哈希表的特殊之处,和哈希表的感念!
HashTable是Dictionary的子类是么?我调试一下感觉一样啊!
可是我为Dictionary赋值的时候也可以赋几组键值对啊,不一定就是一组啊!
Dictionary<string, string> mapVars = new Dictionary<string, string>();
mapVars["ErrorCode"] = s;
mapVars["test"] = s1;
s和s1都是string类型的!可以编译通过而且看到Count=2

Hashtable是值类型?不能吧!
展开
 我来答
玩转数据处理
推荐于2017-09-02 · 数据处理,Python,dotnet
玩转数据处理
采纳数:1613 获赞数:3794

向TA提问 私信TA
展开全部
1:单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分.
2:多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减.
3:Dictionary 有按插入顺序排列数据的特性 (注: 但当调用 Remove() 删除过节点后顺序被打乱), 因此在需要体现顺序的情境中使用 Dictionary 能获得一定方便.
4:对于值类型,特定类型(不包括 Object)的 Dictionary<(Of <(TKey, TValue>)>) 的性能优于 Hashtable,这是因为 Hashtable 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱操作。
chufuya
2008-09-02 · TA获得超过253个赞
知道答主
回答量:335
采纳率:0%
帮助的人:0
展开全部
Dictionary是面向对象的,采用引用类型,HashTable是值类型的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
christiankula
2008-09-02 · TA获得超过1007个赞
知道小有建树答主
回答量:1275
采纳率:0%
帮助的人:0
展开全部
我明白你的意思了
Dictionary支持泛型,Hashtable不支持
这是我知道的最大的区别
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式