iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#中Hashtable和Dictionary有什么区别
  • 387
分享到

C#中Hashtable和Dictionary有什么区别

2023-06-15 04:06:20 387人浏览 独家记忆
摘要

这篇文章给大家介绍C#中Hashtable和Dictionary有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Dictionary<K,V>在使用中是顺序存储的,而Hashtable由于使用的是哈

这篇文章给大家介绍C#中Hashtable和Dictionary有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Dictionary<K,V>在使用中是顺序存储的,而Hashtable由于使用的是哈希算法进行数据存储,是无序的。

Dictionary的key和value是泛型存储,Hashtable的key和value都是object

Dictionary是泛型存储,不需要进行类型转换,Hashtable由于使用object,在存储或者读取值时都需要进行类型转换,所以比较耗时

线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分。多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减。

在通过代码测试的时候发现key是整数型Dictionary的效率比Hashtable快,如果key是字符串型,Dictionary的效率没有Hashtable快。

对于如何进行选择,个人倾向于使用Dictionary,原因是:

Dictionary是可排序的,Hashtable如果想排序还需要采用别的方式进行

Dictionary有泛型优势,效率要高

Hashtable用法举例:

Hashtable hashtable = new Hashtable();            hashtable.Add("id", "BH0001");            hashtable.Add("name", "TM");            hashtable.Add("sex", "男");            Console.WriteLine("\t 键\t 值");            foreach (DictionaryEntry dicEntry in hashtable)                Console.WriteLine("\t " + dicEntry.Key + "\t " + dicEntry.Value);

运行结果:

C#中Hashtable和Dictionary有什么区别

Dictionary用法举例:

Dictionary<string,string> dictionary = new Dictionary<string, string>();            dictionary.Add("id", "BH0001");            dictionary.Add("name", "TM");            dictionary.Add("sex", "男");            Console.WriteLine("\t 键\t 值");            foreach (var dic in dictionary)                Console.WriteLine("\t " + dic.Key + "\t " + dic.Value);

运行结果:

C#中Hashtable和Dictionary有什么区别

C# .net 3.5 以上的版本引入 Linq 后,字典Dictionary排序变得十分简单,用一句类似 sql 数据库查询语句即可搞定;不过,.net 2.0 排序要稍微麻烦一点。下面举例说明dictionary的排序方法:

dictionary按值value排序

Dictionary<string, int> dic = new Dictionary<string, int>();  dic.Add("index.html", 50);  dic.Add("product.html", 13);  dic.Add("aboutus.html", 4);  dic.Add("online.aspx", 22);  dic.Add("news.aspx", 18);private static void DictonarySort(Dictionary<string, int> dic)        {            var dicSort = from objDic in dic orderby objDic.Value descending select objDic;            foreach (KeyValuePair<string, int> kvp in dicSort)                Console.WriteLine(kvp.Key + ":" + kvp.Value );        }

 排序结果:

  index.html:50
  online.aspx:22
  news.aspx:18
  product.html:13
  aboutus.html:4

上述代码是按降序(倒序)排列,如果想按升序(顺序)排列,只需要把变量 dicSort 右边的 descending 去掉即可。

C# dictionary key 排序

如果要按 Key 排序,只需要把变量 dicSort 右边的 objDic.Value 改为 objDic.Key 即可。

C#是什么

C#是一个简单、通用、面向对象编程语言,它由微软Microsoft开发,继承了C和c++强大功能,并且去掉了一些它们的复杂特性,C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程从而成为.NET开发的首选语言,但它不适用于编写时间急迫或性能非常高的代码,因为C#缺乏性能极高的应用程序所需要的关键功能。

关于C#中Hashtable和Dictionary有什么区别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: C#中Hashtable和Dictionary有什么区别

本文链接: https://www.lsjlt.com/news/277664.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#中Hashtable和Dictionary有什么区别
    这篇文章给大家介绍C#中Hashtable和Dictionary有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Dictionary<K,V>在使用中是顺序存储的,而Hashtable由于使用的是哈...
    99+
    2023-06-15
  • C#中Hashtable和Dictionary的区别与用法示例
    前言 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用...
    99+
    2022-11-12
  • 在Java中HashMap和Hashtable有什么区别
    Java中HashMap和Hashtable的区别:HashMap允许空键值,而Hashtable不允许。Hashtable同步的,而HashMap是非同步的,效率上逼Hashtable要高。Hashtable继承自Dictionary类,...
    99+
    2022-10-14
  • HashMap和Hashtable的区别是什么
    这篇文章主要为大家展示了“HashMap和Hashtable的区别是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HashMap和Hashtable的区别是什么”这篇文章吧。HashMap和...
    99+
    2023-06-19
  • Java入门中Hashtable和HashMap的区别是什么
    这篇文章将为大家详细讲解有关Java入门中Hashtable和HashMap的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Hashtable和HashMap的区别:1.Hasht...
    99+
    2023-06-03
  • c#中EnableViewState和ViewStateMode有什么区别
    在C#中,EnableViewState和ViewStateMode都与页面的视图状态(ViewState)相关,但它们有一些区别。...
    99+
    2023-10-24
    c#
  • c和JavaScript有什么区别
    本篇内容介绍了“c和JavaScript有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区别:1、C语言主要是被编译成机器语言,而J...
    99+
    2023-06-14
  • css和c有什么区别
    本篇内容介绍了“css和c有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • C跟C++有什么区别
    本篇内容介绍了“C跟C++有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C ++是带有类的C。早在C流行并且没有C ++的时候,B...
    99+
    2023-06-19
  • c语言中strlen和sizeof有什么区别
    strlen和sizeof都是C语言中常用的函数,但是它们的功能和用途是不同的。1. strlen函数:strlen函数是用来计算字...
    99+
    2023-10-18
    c语言
  • C语言和C++有什么区别联系
    C语言和C++有什么区别联系?针对这个问题,今天小编总结了这篇文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。 C是一个结构化语言,它的重点在于bai算法和数据结构。C程序的设du计首要考虑zhi的是 如何通过一个过程,对输...
    99+
    2023-05-31
    c语言 c++ 区别联系
  • HashMap和HashTable的区别以及常见面试题是什么
    本篇文章为大家展示了HashMap和HashTable的区别以及常见面试题是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。HashMapHashMap也是我们使用非常多的Collection,它...
    99+
    2023-06-02
  • b端和c端有什么区别
    b端和c端区别有:1、B端市场更注重商业间的合作,而C端市场更注重个人之间的交流和互动;2、B端市场中商业行为更加正规化和专业化,而商品或服务的类型也更加多样化和个性化;3、B端市场通常具有局限性和专业性,而C端市场由于涉及的人群更广泛;4...
    99+
    2023-07-19
  • C++和C中const的区别是什么
    本篇内容介绍了“C++和C中const的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!const,这个词字面意思为:常数。这就表示...
    99+
    2023-06-21
  • C++11类型别名和typedef有什么区别
    这篇文章主要讲解了“C++11类型别名和typedef有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++11类型别名和typedef有什么区别”吧!为什么需要别名下面的说明只是一...
    99+
    2023-06-19
  • C语言中的i++和++i有什么区别
    这篇文章主要讲解了“C语言中的i++和++i有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中的i++和++i有什么区别”吧!(1)如果只是看i++和++i,这两个是等价的,都...
    99+
    2023-06-03
  • cin.getline()和getline()函数在C++中有什么区别
    本篇文章为大家展示了cin.getline()和getline()函数在C++中有什么区别,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。cin.getline():用法:接收一个字符串,可以接收空格...
    99+
    2023-06-14
  • c语言scanf和printf有什么区别
    scanf和printf是C语言中常用的输入输出函数。1. scanf函数:- 用于从标准输入(键盘)读取数据,并将其存储到指定的变...
    99+
    2023-09-12
    c语言
  • c语言string和char有什么区别
    在C语言中,string和char都是字符类型的数据,但是有一些区别:1. char是单个字符的数据类型,而string是一串字符的...
    99+
    2023-09-12
    c语言
  • c++声明和定义有什么区别
    在C++中,声明和定义是不同的概念。声明(Declaration)是指在程序中引入一个变量、函数或类的名称,告诉编译器它的存在和类型...
    99+
    2023-08-16
    c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作