首頁 >後端開發 >C#.Net教程 >C# 程式根據 Hashtable 集合中的值取得鍵

C# 程式根據 Hashtable 集合中的值取得鍵

WBOY
WBOY轉載
2023-08-27 09:29:08780瀏覽

C# 程序根据 Hashtable 集合中的值获取键

哈希表是 C# 中的一個集合,其中包含標識為鍵值對的項目。因此,與 C# 中的堆疊、佇列或 ArrayList 等儲存單一值的其他資料結構不同,C# 中的雜湊表儲存 2 個值。這兩個值,即鍵值對,構成了哈希表的一個元素。

在雜湊表中,鍵是唯一的且不應為null。哈希表中的值可以為null且可以重複。

在C#中,System.collections介面提供了一個名為「Hashtable」的類,用來表示哈希表集合。這個類別提供了各種建構函式來建立哈希表對象,也提供了方法和屬性來對雜湊表物件進行各種操作。

在本文中,我們將了解如何根據值取得雜湊表集合中的鍵。

如何根據Hashtable集合中的值取得鍵?

Hashtable類別沒有直接的方法來根據雜湊表中的值取得鍵。因此,我們需要編寫哈希表集合的程序,以便在給定值的情況下檢索鍵。

我們來討論一下根據值取得金鑰的方法。為此,我們根據哈希表鍵遍歷整個哈希表。然後我們將每個值與指定的值進行匹配,如果值匹配,我們會返回相應的鍵。

對於遍歷哈希表,我們可以使用如下的foreach循環。

foreach (string key in langCodes.Keys) {
   if (langCodes[key].ToString() == value) {
       retKey = key;
   }
}

我們在foreach迴圈中使用的迭代器來遍歷雜湊表的是鍵的集合(langCodes.Keys)。然後,將每個鍵的對應值與指定的值進行比較,如果匹配,則傳回該特定鍵。

範例

下面的程式展示了這個實作。

using System;
using System.Collections;
class Program {
   public static void Main(){
      // Create a Hashtable
      Hashtable langCodes = new Hashtable();
      
      // Add elements to the Hashtable
      langCodes.Add("C++", "CPlusPlus");
      langCodes.Add("C#", "CSharp");
      langCodes.Add("Java", "Java");
      langCodes.Add("PL", "Perl");
      string value = "CSharp";
      string retKey="";
      foreach (string key in langCodes.Keys){
         if (langCodes[key].ToString() == value){
            retKey = key;
         }
      }
      if(retKey != ""){
         Console.WriteLine("Key for the value = {0} is {1}", value,retKey);
      } else {
         Console.WriteLine("Key for the value = {0} is not present in the Hashtable", value);
      }
   }
}

這裡,我們有一個名為「langCodes」的雜湊表,由程式語言程式碼及其對應的值組成。宣告一個包含指定值的字串變數。然後使用 foreach 構造遍歷整個雜湊表並檢查與指定值相同的鍵。當找到一個這樣的鍵時,該鍵值將在變數 retKey 中傳回。

輸出

如果變數retKey中有一個值,我們將該值作為指定值的鍵輸出。如果retKey為空,則可以得出結論

Key for the value = CSharp is C#

現在假設我們想要取得一個值為「JavaScript」的鍵。

string value = "JavaScript";

輸出

透過這個改變,我們執行上述程序,它將產生以下輸出。

Key for the value = JavaScript is not present in the Hashtable

現在,由於雜湊表中沒有與JavaScript語言相符的元素,程式會顯示上述訊息。

讓我們舉一個例子來簡化這個主題。

範例

以下程式取得雜湊表中給定特定值的鍵。

using System;
using System.Collections;
class Program {
   public static void Main() {
      // Create a Hashtable
      Hashtable myHashTable = new Hashtable();
      
      // Add elements to the Hashtable
      myHashTable.Add("First", "Hello");
      myHashTable.Add("Second", "World");
      myHashTable.Add("Third", "");
      myHashTable.Add("Fourth", "!");
      string value = "";
      string retKey="";
      foreach (string key in myHashTable.Keys) {
         if (myHashTable[key].ToString() == value) {
            retKey = key;
         }
      }
      if(retKey != ""){
         Console.WriteLine("Key for the value = {0} is {1}", value,retKey);
      } else {
         Console.WriteLine("Key for the value = {0} is not present in the Hashtable", value);
      }
   }
}

在這個程式中,我們有一個哈希表“myHashTable”,其中儲存著名言“Hello World!”。但我們並沒有連續儲存這些單字。相反,我們在“World”一詞後面引入了一個空值。

輸出

該程式旨在取得空值的鍵。產生的輸出如下所示。

#
Key for the value = is Third

在這裡,由於雜湊表允許空值,當我們指定一個空值時,將檢索對應的空值鍵。

現在讓我們改變我們想要取得金鑰的值。下面我們將值改為'!'並執行程式。

string value = "!";

輸出

Key for the value = ! is Fourth

哈希表中的第三個元素是一個空值,因此引文的最後部分是哈希表中的第四個位置。

透過這種方式,我們可以編程使哈希表在給定哈希表中的特定值時檢索鍵。正如我們已經看到的,由於雜湊表允許空值,我們也可以傳遞空值並獲得其對應的鍵。

以上是C# 程式根據 Hashtable 集合中的值取得鍵的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除