如何在 C# 中使用指定鍵從雜湊表集合獲取值


雜湊表是鍵值對的集合。我們可以使用迭代器訪問鍵值對。我們也可以訪問集合中雜湊表的鍵。類似地,我們也可以訪問雜湊表中的值。給定一個雜湊表,也可以訪問指定鍵的值或指定值的匹配鍵。

讓我們討論一下,給定一個鍵,我們如何訪問雜湊表集合中的值。

如何使用指定鍵從雜湊表集合獲取值?

在這裡,當給定鍵時,我們必須從雜湊表的鍵值對中獲取值。

考慮以下雜湊表。

{“US", "New York"}
{"FR", "Paris"}
{"UK", "London"}
{"IN", "Mumbai"}
{"GER", "Berlin"}

在這裡,讓我們假設我們必須查詢鍵“UK”的值。因此,我們必須遍歷雜湊表以找出雜湊表是否包含**鍵 = UK**。一旦找到鍵 =“UK”,我們就可以將其對應的值訪問為 hashtable[key]。

示例

下面顯示了執行上述操作的程式:

using System;
using System.Collections;
class MyHashTable {
   // Main Method
   static public void Main() {

      // Create a hashtable instance
      Hashtable Citytable = new Hashtable();

      // Adding key/value pair in the hashtable using Add() method
      Citytable.Add("US", "New York");
      Citytable.Add("FR", "Paris");
      Citytable.Add("UK", "London");
      Citytable.Add("IN", "Mumbai");
      Citytable.Add("GER", "Berlin");
      
      String key;
      Console.WriteLine("Enter the key whose value is to be printed:");
      key = Console.ReadLine();
      if(key != ""){
         if(Citytable.Contains(key) == true){
         string keyval = (string)Citytable[key];
         Console.WriteLine("The value of key {0} = {1}", key,keyval);
      }
      else
         Console.WriteLine ("Value for the key= {0} does not exist", key);
      }    
      Console.ReadKey();
   }
}

在上面的程式中,我們定義了一個雜湊表。然後使用者輸入要獲取其值的鍵。一旦鍵作為輸入讀取,我們首先確定鍵是否為空或空字串。這是因為雜湊表鍵不能為 null。因此,如果使用者輸入空值,我們將 simply not proceed with finding the value.

因此,如果鍵不為空,我們檢查雜湊表是否包含指定的鍵。為此,我們使用 C# 中的雜湊表集合方法 **Contains()**,如果鍵存在於雜湊表中,則返回 true;如果鍵不存在,則返回 false。

如果 **Contains()** 方法返回 true,那麼我們只需訪問該特定鍵的值。

string keyval = (string)Citytable[key];

然後將此值顯示給使用者。

輸出

Enter the key whose value is to be printed:
FR
The value of key FR = Paris

在此輸出中,使用者執行了程式並將鍵值輸入為 FR。由於此鍵已存在於雜湊表中,因此成功返回該鍵的值。

現在如果我們輸入雜湊表中不存在的鍵值呢?

讓我們再次執行程式。現在我們的雜湊表中沒有加拿大國家的鍵。讓我們輸入 CAN 作為加拿大的鍵。輸出如下所示。

輸出

Enter the key whose value is to be printed:
CAN
Value for the key= CAN do not exist

在這裡,由於雜湊表不包含 **鍵 = CAN**,程式返回一條訊息,指出該值不存在。

透過這種方式,我們可以開發一個互動式程式來查詢雜湊表集合中指定鍵的值。

讓我們再舉一個例子,使用雜湊表查詢給定鍵的值。

在這裡,我們將考慮以下包含數字及其相應數字名稱的雜湊表。

{“1.1", "One point One"}
{"1.2", "One point Two"}
{"1.3", "One point Three"}
{"1.4", "One point Four"}
{"1.5", "One point Five"}

與前面的示例類似,在這裡,我們也將要求使用者輸入要查詢其值的鍵,然後搜尋雜湊表中指定的鍵並顯示其值。

示例 2

下面是執行相同操作的程式:

using System;
using System.Collections;
class MyHashTable {
   // Main Method
   static public void Main() {

      // Create a hashtable instance
      Hashtable Numbernames = new Hashtable();

      // Adding key/value pair in the hashtable using Add() method
      Numbernames.Add("1.1", "One point One");
      Numbernames.Add("1.2", "One point Two");
      Numbernames.Add("1.3", "One point Three");
      Numbernames.Add("1.4", "One point Four");
      Numbernames.Add("1.5", "One point Five");

      String key = "1.4";
      if(key != ""){
          if(Numbernames.Contains(key) == true){
              string keyval = (string)Numbernames[key];
              if(keyval != "")
                 Console.WriteLine("The value of key {0} = {1}", key,keyval);
              else
                 Console.WriteLine("The value for key = {0} does not exist", key);
          }
          else
             Console.WriteLine ("The key= {0} does not exist in the NumberNames hashtable", key);
      }    
      Console.ReadKey();
   }
}

該程式與前面的示例相同,只是雜湊表不同,並且我們指定了一個額外的條件來檢查空值。這是因為可能會發生這種情況:指定的鍵可能存在於雜湊表中,但其對應的值可能為空。其次,我們在這個程式中沒有讀取使用者輸入,而是直接使用了鍵 =“1.4”,我們打印出這個鍵的值。因此,我們在本程式中引入了另一個檢查。因此,本程式現在檢查:

  • 如果指定的鍵為空

  • 如果鍵不為空,程式檢查雜湊表是否包含該鍵。

  • 如果雜湊表包含該鍵,則它將檢索該鍵的值。如果值不為空,則程式將顯示該值。

  • 如果值為空,則顯示相應的訊息。

輸出

The value of key 1.4 = One point Four

當我們指定雜湊表中存在的正確鍵時,將生成此輸出。

在本文中,我們瞭解瞭如何根據鍵從雜湊表集合獲取值。我們還看到了幾個程式設計示例以及不同的輸出以闡明概念。在接下來的文章中,我們將繼續討論雜湊表主題。

更新於:2022-12-22

6K+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.