C#中的Hashtable和Dictionary有什么区别()

在C#中, Dictionary是通用集合, 通常用于存储键/值对。字典的定义如下System.Collection.Generics命名空间。它本质上是动态的, 这意味着字典的大小会根据需要而增加。
例子:

//C# program to illustrate Dictionary using System; using System.Collections.Generic; class GFG {//Main Method static public void Main() {//Creating a dictionary //using Dictionary< TKey, TValue> class Dictionary< string , string> My_dict = new Dictionary< string , string> (); //Adding key/value pairs in the Dictionary //Using Add() method My_dict.Add( "a.01" , "C" ); My_dict.Add( "a.02" , "C++" ); My_dict.Add( "a.03" , "C#" ); foreach (KeyValuePair< string , string> element in My_dict) { Console.WriteLine( "Key:- {0} and Value:- {1}" , element.Key, element.Value); } } }

输出如下:
Key:- a.01 and Value:- C Key:- a.02 and Value:- C++ Key:- a.03 and Value:- C#

哈希表是基于键的哈希码排列的键/值对的集合。换句话说, 哈希表用于创建使用哈希表进行存储的集合。这是非通用类型的集合, 在系统集合命名空间。在哈希表中, 键对象必须是不可变的, 只要它们在哈希表中用作键即可。
例子:
//C# program to illustrate a hashtable using System; using System.Collections; class GFG {//Main method static public void Main() {//Create a hashtable //Using Hashtable class Hashtable my_hashtable = new Hashtable(); //Adding key/value pair in the hashtable //Using Add() method my_hashtable.Add( "A1" , "Welcome" ); my_hashtable.Add( "A2" , "to" ); my_hashtable.Add( "A3" , "srcmini" ); foreach (DictionaryEntry element in my_hashtable) { Console.WriteLine( "Key:- {0} and Value:- {1} " , element.Key, element.Value); } } }

【C#中的Hashtable和Dictionary有什么区别()】输出如下:
Key:- A3 and Value:- srcmini Key:- A2 and Value:- to Key:- A1 and Value:- Welcome

哈希表与字典
哈希表 字典
哈希表是一个非泛型集合。 字典是通用集合。
哈希表在System.Collections命名空间下定义。 字典在System.Collections.Generic命名空间下定义。
在哈希表中, 你可以存储相同类型或不同类型的键/值对。 在字典中, 你可以存储相同类型的键/值对。
在哈希表中, 无需指定键和值的类型。 在字典中, 你必须指定键和值的类型。
由于装箱/拆箱, 数据检索比字典慢。 由于没有装箱/拆箱, 数据检索比哈希表更快。
在哈希表中, 如果你尝试访问给定哈希表中不存在的键, 则它将提供空值。 在” 词典” 中, 如果你尝试访问给定词典中不存在的键, 则会出现错误。
这是线程安全的。 它也是线程安全的, 但仅适用于公共静态成员。
它不会保持存储值的顺序。 它始终保持存储值的顺序。

    推荐阅读