卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章19625本站已运行344

如何在 C# 中向哈希表集合添加项目

如何在 C# 中向哈希表集合添加项目

我们已经讨论了哈希表的基础知识。 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() 方法构建不同元素的哈希表。

示例 1

'
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

输出显示了我们添加到哈希表中的所有键值对。

我们再举一个向哈希表添加元素的例子。程序如下。

示例 2

'
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 的操作。

卓越飞翔博客
上一篇: PHP数据库连接中的并发控制与锁机制
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏