如何在 C# 中檢查 Hashtable 中是否存在鍵?


C# 中的 Hashtable 類表示鍵值對的集合。這些鍵值對根據使用雜湊碼函式計算的鍵的雜湊碼進行組織。

Hashtable 中的鍵用於訪問項。因此,給定一個鍵,我們可以在 Hashtable 中訪問該鍵對應的值。Hashtable 中的鍵是唯一且非空的。但是,值可以為空或重複。

在我們之前的教程中,我們一直在討論 Hashtable 主題。我們將在本文中繼續這一趨勢。在本文中,我們將討論如何檢查 Hashtable 集合中是否存在鍵。

所以讓我們開始吧。

如何檢查 Hashtable 中是否存在鍵?

Hashtable 類提供了兩種方法來幫助我們檢查 Hashtable 中是否存在鍵。這兩種方法分別是 ContainsKey()Contains()。我們將逐一討論這些方法。

方法 描述
ContainsKey(object key) 如果鍵存在則返回 true,否則返回 false。
Contains() 如果鍵存在則返回 true,否則返回 false。

ContainsKey() 方法

Hashtable 類的 ContainsKey() 方法以鍵物件作為引數,如果此鍵物件存在於 Hashtable 中,則返回 true。如果 Hashtable 中不存在具有指定鍵的元素,則返回 false。

以下是 ContainsKey() 方法的一般原型。

語法

public virtual bool ContainsKey(object key);

引數

  • Key − 要在 Hashtable 中查詢的 System.object 型別的鍵。

返回型別

  • True − 如果 Hashtable 包含具有指定鍵的元素。

  • False − Hashtable 不包含具有指定鍵的元素。

異常

  • ArgumentNullException − 如果鍵為空。

示例

以下程式演示瞭如何使用 ContainsKey() 方法檢查 Hashtable 中是否存在鍵。

using System;
using System.Collections;
  
class Program {
  
   public static void Main() {
  
      // Create a Hashtable
      Hashtable myHashTable = new Hashtable();
  
      // Add elements in Hashtable
      myHashTable.Add("P", "Program");
      myHashTable.Add("T", "To");
      myHashTable.Add("F", "Find");
      myHashTable.Add("K", "Key");
  
      String key;
      Console.WriteLine("Enter the key which is to be found:");
      key = Console.ReadLine();
      if(key != ""){
         if (myHashTable.ContainsKey(key))
            Console.WriteLine("myHashTable contains the key={0}",key);
         else
            Console.WriteLine("myHashTable doesn't contain the key={0}",key);
      }
   }
}

在此程式中,我們有一個包含五個元素的 Hashtable myHashTable。然後,程式提示使用者輸入要查詢的鍵。當用戶輸入鍵時,將使用輸入的鍵作為引數執行 ContainsKey() 方法。如果該方法返回 true,則程式顯示一條適當的訊息。如果該方法返回 false,則表示該鍵不存在,並顯示一條適當的訊息。

當用戶輸入鍵並且 ContainsKey() 方法返回 true 時,將生成以下輸出。

輸出

Enter the key which is to be found:
P
myHashTable contains the key=P

由於 Hashtable 中存在一個具有給定鍵 (P) 的元素,因此 ContainsKey() 方法返回 true。然後,程式顯示一條適當的訊息。

現在讓我們重新執行程式並生成第二個輸出,如下所示。

輸出

Enter the key whose value is to be found:
X
myHashTable doesn't contain the key=X

此處顯示的訊息表明 Hashtable 不包含該鍵。輸入的鍵是 X,它不是 Hashtable 的一部分。因此,ContainsKey() 方法返回 false。

Contains() 方法

Contains() 方法是另一種用於檢查 Hashtable 中是否存在鍵的方法。與 ContainsKey() 方法類似,Contains() 方法也以鍵物件作為引數,並搜尋 Hashtable 以檢查 Hashtable 中是否存在具有指定鍵的元素。

Contains() 方法的原型如下所示。

語法

public virtual bool Contains (object key);

引數

  • Key − 要在 Hashtable 中查詢的鍵物件。

返回型別

  • True − Hashtable 包含具有指定鍵的元素。

  • False − Hashtable 不包含具有指定鍵的元素。

異常

如果鍵為空,則此方法會引發 ArgumentNullException

示例

下一個程式演示了 Contains() 方法的使用。

using System;
using System.Collections;
  
class Program {
  
   public static void Main() {
  
      // Create a Hashtable
      Hashtable myHashTable = new Hashtable();
  
      // Add elements in Hashtable
      myHashTable.Add("P", "Program");
      myHashTable.Add("T", "To");
      myHashTable.Add("F", "Find");
      myHashTable.Add("K", "Key");
  
      String key = "F";
      if(key != ""){
         if (myHashTable.Contains(key))
            Console.WriteLine("myHashTable contains the key={0}",key);
         else
            Console.WriteLine("myHashTable doesn't contain the key={0}",key);
      }
   }
}

該程式與上一個程式類似,除了方法更改之外。這裡我們指定 key = “F”。呼叫帶鍵作為引數的 contains() 方法,並在遍歷 Hashtable 後返回適當的值。根據返回的值,顯示程式的輸出。

當用戶輸入 key = F 時,程式生成以下輸出。

輸出

myHashTable contains the key=F

輸出表明 Hashtable 包含該鍵,因為 Hashtable 中存在具有指定鍵的元素,因此 Contains() 方法返回 true。

在本文中,我們討論了 ContainsKey() 和 Contains() 方法,它們用於檢查 Hashtable 集合中是否存在指定的鍵。我們還看到了程式設計示例以理解這個概念。我們將在後續教程中學習更多概念。

更新於: 2022-12-14

1K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.