如何在 C# 中向哈希表集合添加项
我们已经讨论了哈希表的基础知识。C# 中的哈希表集合用于存储键值对,其中每个键值对都基于键的哈希码进行组织。此哈希码是使用哈希码函数计算的。在内部,哈希表使用存储桶来存储数据。存储桶只不过是哈希表中的虚拟元素组。哈希码与每个存储桶相关联。
从编程上讲,哈希表类似于字典对象,但与字典对象不同,哈希表可以存储不同数据类型的对象。从性能上讲,哈希表的性能较低,因为哈希表的数据元素是对象。因此,必须对对象进行装箱和拆箱,以便存储和检索哈希表中的值。
在本文中,让我们讨论如何将项目添加到哈希表集合中。
如何将项目添加到哈希表集合?
C# 中的 哈希表 集合是使用哈希表类实现的。此类提供了各种方法来对哈希表执行不同的操作。其中一种方法是 Add()。
哈希表类的 Add() 方法用于在哈希表中添加具有指定键及其对应值的元素。在向哈希表添加键值对时,我们应该确保键不重复或为空,因为哈希表只允许非空且唯一的键。
在 C# 的哈希表集合中,我们可以拥有不同数据类型的键/值对元素。
现在让我们继续讨论 Add() 方法。
哈希表集合的 Add() 方法的通用原型如下所示。
语法
public virtual void Add(object key, object value);
参数
Key − 所添加元素的指定键(类型为 System.Object)。应为非空值。
Value − 元素的指定值(类型为 System.Object)此值可以为空值。
异常:此方法会引发以下异常。
ArgumentNullException − 当键为空时。
ArgumentException − 已存在具有相同键的元素。
NotSupportedException − Hashtable 具有固定大小或只读。
如果我们有一个如下所示声明的哈希表对象 -
Hashtable hshTable = new Hashtable();
然后我们可以使用 Add() 方法向该哈希表对象添加一个元素,如下所示 -
hshTable.Add("msg", "charVal");
由于哈希表允许混合数据类型的元素,因此我们也可以在同一个哈希表中添加一个数值 -
hshTable.Add(1, 2022);
除了使用 Add() 方法,我们还可以将值直接分配给哈希表。例如,要添加一个 key = 2 的元素,我们可以简单地写,
hshTable[3] = "three";
上述语句将在哈希表中创建一个键值对(3,"three")。
向哈希表集合添加项目的编程示例
以下程序显示了 Add() 方法演示,用于构建不同元素的哈希表。
示例 1
using System;
using System.Collections;
class Program {
static void Main(string[] args) {
Hashtable mixedHashTable = new Hashtable();
//添加方法
mixedHashTable.Add("msg", "Collection");
mixedHashTable.Add("site", "HashTable");
mixedHashTable.Add(1, 3.14);
mixedHashTable.Add(2, null);
//为键分配值
mixedHashTable[3] = "Tutorial";
// 如果键已经存在于哈希表中,则 Add 方法会引发异常
try {
mixedHashTable.Add(2, 750);
} catch {
Console.WriteLine("Hashtable already has an element with Key = '2'.");
}
Console.WriteLine("*********HashTable Elements********");
// 它将以键值对的形式返回元素。
foreach (DictionaryEntry elem in mixedHashTable) {
Console.WriteLine("Key = {0}, Value = {1}", elem.Key, elem.Value);
}
Console.ReadLine();
}
}
上述程序首先使用默认构造函数创建一个哈希表对象。然后它使用 Add() 方法向哈希表添加不同的元素。我们也可以通过直接分配值来向哈希表添加元素。上述程序将不同数据类型的键值对添加到哈希表中。然后使用迭代器逐一显示哈希表的元素。
输出
上述示例的输出如下所示 −
Hashtable already has an element with Key = '2'. *********HashTable Elements******** Key = 2, Value = Key = msg, Value = Collection Key = 3, Value = Tutorial Key = site, Value = HashTable Key = 1, Value = 3.14
输出显示了我们已添加到哈希表的所有键值对。
我们再举一个向哈希表添加元素的例子。程序如下所示。
示例 2
using System;
using System.Collections;
class hTable {
// 驱动代码
public static void Main() {
// 创建一个哈希表
Hashtable strHashTable = new Hashtable();
// 在 Hashtable 中添加元素
strHashTable.Add("4", "Even Number");
strHashTable.Add("9", "Odd Number");
strHashTable.Add("5", "Odd and Prime Number");
strHashTable.Add("2", "Even and Prime Number");
// 获取键的集合。
ICollection c = strHashTable.Keys;
// 显示哈希表内容
Console.WriteLine("=========Contents of the Hashtable=========");
foreach(string str in c)
Console.WriteLine(str + ": " + strHashTable[str]);
}
}
在此程序中,我们添加字符串类型的值。我们使用 Add() 方法添加值,然后检索哈希表中的键集合。然后,使用 foreach 循环遍历此键集合并显示每个键及其对应的值。
输出
生成的输出如下 −
=========Contents of the Hashtable========= 5: Odd and Prime Number 9: Odd Number 2: Even and Prime Number 4: Even Number
通过这种方式,我们可以使用 hashtable 类的 Add() 方法将项目添加到 hashtable 集合中。
在本文中,我们了解了如何将项目添加到 Hashtable 集合中。在后续文章中,我们将讨论有关 Hashtable 的更多操作。

