我们已经讨论了哈希表的基础知识。 C# 中的哈希表集合用于存储键值对,其中每个键值对都是根据键的哈希码进行组织的。该哈希码是使用哈希码函数计算的。在内部,哈希表使用桶来存储数据。存储桶只不过是哈希表中的一组虚拟元素。哈希码与每个存储桶相关联。
从编程上来说,哈希表类似于字典对象,但与字典对象不同的是,哈希表可以存储不同数据类型的对象。在性能方面,哈希表表现出较低的性能,因为哈希表的数据元素是对象。因此,为了从哈希表中存储和检索值,必须执行对象的装箱和拆箱。
在本文中,我们将讨论如何向哈希表集合添加项目。
C#中的hashtable集合是使用hashtable类实现的。此类提供了各种方法来对哈希表执行不同的操作。其中一种方法是 Add()。
哈希表类的Add()方法用于在哈希表中添加具有指定键及其对应值的元素。当向哈希表添加键值对时,我们应该确保键不重复或为空,因为哈希表只允许非空且唯一的键。
在C#的哈希表集合中,我们可以拥有不同数据类型的键/值对元素。
现在让我们继续讨论 Add() 方法。
下面给出了哈希表集合的Add()方法的一般原型。
public virtual void Add(object key, object value);
Key - 正在添加的元素的指定键(类型 System.Object)。应为非空。
Value - 元素的指定值(类型 System.Object)此值可以为 null。
ArgumentNullException − 当键为 null 时。
ArgumentException − 具有相同键的元素已存在。
NotSupportedException − 哈希表具有固定大小或只读。
如果我们有一个哈希表对象声明如下 -
Hashtable hshTable = new Hashtable();
然后我们可以使用 Add() 方法向该哈希表对象添加一个元素,如下所示 -
hshTable.Add("msg", "charVal");
由于哈希表允许混合数据类型的元素,因此我们也可以在同一个哈希表中添加数值 -
hshTable.Add(1, 2022);
除了使用 Add() 方法,我们还可以直接将值分配给哈希表。例如,要添加 key = 2 的元素,我们可以简单地编写,
hshTable[3] = "three";
上述语句将在哈希表中创建一个键值对(3,“三”)。
以下程序演示了如何使用 Add() 方法构建不同元素的哈希表。
using System; using System.Collections; class Program { static void Main(string[] args) { Hashtable mixedHashTable = new Hashtable(); //add method mixedHashTable.Add("msg", "Collection"); mixedHashTable.Add("site", "HashTable"); mixedHashTable.Add(1, 3.14); mixedHashTable.Add(2, null); //assign value to the key mixedHashTable[3] = "Tutorial"; // Add method throws an exception if the key already exists in //hashtable try { mixedHashTable.Add(2, 750); } catch { Console.WriteLine("Hashtable already has an element with Key = '2'."); } Console.WriteLine("*********HashTable Elements********"); // It will return elements as Key-Value Pair. 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
输出显示了我们添加到哈希表中的所有键值对。
我们再举一个向哈希表添加元素的例子。程序如下。
using System; using System.Collections; class hTable { // Driver code public static void Main() { // Creating a Hashtable Hashtable strHashTable = new Hashtable(); // Adding elements in 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"); // Get a collection of the keys. ICollection c = strHashTable.Keys; // Displaying the hashtable contents 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 的操作。
以上是如何在 C# 中向哈希表集合添加项目的详细内容。更多信息请关注PHP中文网其他相关文章!