C# 哈希表及其示例

C# 中的 Hashtable 是什么?

哈希表是一种用于存储键值项的特殊集合。因此,哈希表不会像堆栈、数组列表和队列那样只存储一个值,而是存储 2 个值。这两个值构成了哈希表的一个元素。

下面是哈希表值的一些示例。

{ "001" , ".Net" }
{ "002" , ".C#" }
{ "003" , "ASP.Net" }

上面我们有 3 个键值对。每个元素的键分别为 001、002 和 003。每个键值对的值是“。净“”、“C#”和“ASP.Net”。

让我们更详细地了解 Hashtable 集合可用的操作。

哈希表的声明

Hashtable 的声明如下所示。Hashtable 是在 Hashtable 数据类型的帮助下创建的。使用“new”关键字创建 Hashtable 对象。然后将该对象分配给变量 ht。

Hashtable ht = new Hashtable()

向哈希表添加元素

Add 方法用于将元素添加到 队列。该语句的一般语法如下

HashTable.add("key","value")

例如1:

请记住,哈希表的每个元素包含 2 个值,一个是键,另一个是值。

现在,让我们从代码层面看一下它是如何工作的。下面提到的所有代码都将写入我们的控制台应用程序。

代码将写入我们的 Program.cs 文件中。在下面的程序中,我们将编写代码来查看如何使用上述方法。

现在,在我们的示例中,我们仅了解如何创建哈希表、向哈希表添加元素并相应地显示它们。

C# 中的哈希表

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Hashtable ht = new Hashtable();
   ht.Add("001",".Net");
   ht.Add("002","C#");
   ht.Add("003","ASP.Net");

   ICollection keys = ht.Keys;

   foreach (String k in keys)
   {
    Console.WriteLine(ht[k]);
   }
    Console.ReadKey();
   }
 }
}

代码说明:-

  1. 首先,我们使用关键字“New”使用 Hashtable 数据类型声明哈希表变量。该变量定义的名称是“ht”。
  2. 然后我们使用 Add 方法将元素添加到哈希表中。请记住,在向哈希表添加内容时,我们需要添加键和值元素。
  3. 没有直接的方法来显示哈希表的元素。
  • 为了显示哈希表,我们首先需要从哈希表中获取键列表(001、002 和 003)。
  • 这是通过 ICollection 接口完成的。这是一种特殊的数据类型,可用于存储哈希表集合的键。然后我们将哈希表集合的键分配给变量“keys”。
  1. 接下来对于每个键值,我们使用语句 ht[k] 获取哈希表中的关联值。

如果正确输入上述代码并运行程序,将显示以下输出。

输出:

C# 中的哈希表

让我们看看哈希表可用的更多方法。

包含密钥

此方法用于查看 Hashtable 中是否存在某个键。以下是此语句的一般语法。如果键存在,则该语句将返回 true,否则将返回值 false。

Hashtable.Containskey(key)

包含值

此方法用于查看 Hashtable 中是否存在某个值。以下是此语句的一般语法。如果该值存在,则该语句将返回 true,否则将返回 false。

Hashtable.ContainsValue(value)

例如2:

让我们修改一下 控制台应用 展示如何使用“Containskey”和“ContainsValue”方法。

C# 中的哈希表

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Hashtable ht = new Hashtable();
   ht.Add("001",".Net");
   ht.Add("002","C#");
   ht.Add("003","ASP.Net");

   Console.WriteLine(ht.ContainsKey("001"));
   Console.WriteLine(ht.ContainsValue("C#"));
   Console.ReadKey();
   }
 }
}

代码说明:-

  1. 首先,我们使用 ContainsKey 方法查看哈希表中是否存在该键。如果哈希表中存在该键,则此方法将返回 true。由于哈希表中确实存在该键,因此此方法应该返回 true。
  2. 然后我们使用 ContainsValue 方法查看哈希表中是否存在该值。此方法将返回“true”,因为哈希表中确实存在该值。

如果正确输入上述代码并运行程序,将显示以下输出。

输出:

C# 中的哈希表

从输出中,您可以清楚地看到搜索的键和值都存在于哈希表中。

总结

Hashtable 用于存储由键值对组成的元素。要访问元素的值,您需要知道元素的键。