如何在 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 集合中是否存在指定的鍵。我們還看到了程式設計示例以理解這個概念。我們將在後續教程中學習更多概念。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP