如何將雜湊錶轉換為字串?


C# 中的雜湊表集合是一個非泛型元素集合。雜湊表的每個元素都表示為鍵值對。雜湊表的鍵不為空且唯一。值可以重複和/或為空。

C# 系統的 Hashtable 類。集合介面是雜湊表集合的表示。此類提供各種建構函式、方法和屬性來操作雜湊表集合。

我們還可以將雜湊錶轉換為其他集合,如陣列、ArrayList 等,以及轉換為字串表示形式。

在本文中,讓我們討論如何將雜湊表集合轉換為字串。

如何將雜湊表項轉換為字串?

請注意,要將雜湊表項轉換為字串,雜湊表類沒有提供像 Java 這樣的直接方法。也沒有內建屬性可以進行轉換。因此,我們需要設計自己的方法將雜湊表元素轉換為字串表示形式。

為此,我們將必須遍歷雜湊表集合,然後將每個專案的鍵和值複製到字串中。我們可以在字串中放置一個分隔符來分隔每個鍵值項。

要使用 C# 實際程式設計這一點,我們使用 IDictionaryEnumerator 來迭代雜湊表中的每個專案。列舉器儲存雜湊表的每個專案(鍵和值)。然後,我們可以使用迴圈將每個鍵和值複製到字串中,如下所示。

IDictionaryEnumerator enumerator = phonetics.GetEnumerator();
while (enumerator.MoveNext()) {
   text += enumerator.Key + ", ";
   text += enumerator.Value + "
"; }

正如我們在上面的程式碼片段中看到的,在每個鍵值對複製到字串之後,我們插入一個分隔符“
”,以便將每個專案分隔開。

示例

下面顯示了將雜湊表項轉換為字串的 C# 完整程式。

using System;
using System.Collections;
class myHashTable {
   public static void Main() {
      // Create a Hashtable named phonetics
      Hashtable phonetics = new Hashtable();
      
      // Add key/value pairs in phonetics
      phonetics.Add("A", "Apple");
      phonetics.Add("B", "Banana");
      phonetics.Add("C", "Cat");
      phonetics.Add("D", "Dog");
      phonetics.Add("E", "Elephant");
      phonetics.Add("F", "Fish");
      
      //print hahshtable collection
      Console.WriteLine("Hashtable items:");
      foreach(DictionaryEntry entry in phonetics){
         Console.WriteLine("{0} and {1} ", entry.Key, entry.Value);
      }
      string text = "";
      IDictionaryEnumerator enumerator = phonetics.GetEnumerator();
      while (enumerator.MoveNext()) {
         text += enumerator.Key + ", ";
         text += enumerator.Value + "
"; } Console.WriteLine("String value: {0}", text); } }

在此程式中,我們有一個從 A 到 F 的語音雜湊表。我們宣告一個字串變數“text”。然後,我們宣告一個 IDictioanaryEnumerator 來遍歷雜湊表。然後,使用此列舉器,我們使用“while”迴圈將雜湊表集合的內容複製到字串中。

輸出

該程式生成以下輸出。

Hashtable items:
B and Banana 
C and Cat A and Apple 
F and Fish 
D and Dog 
E and Elephant 
String value: B, Banana
C, Cat
A, Apple
F, FishD, Dog
E, Elephant

在這裡,我們首先顯示了雜湊表集合的內容。接下來,我們顯示字串。我們可以看到字串值包含雜湊表的所有元素,並以“
”(換行符)分隔。

示例

讓我們實現另一個程式將雜湊錶轉換為字串。下面給出了完整的 C# 程式。

using System;
using System.Collections;
class myHashTable {
   public static void Main() {
      
      // Create a Hashtable named numberNames
      Hashtable numberNames = new Hashtable();
      
      // Add key/value pairs in numberNames
      numberNames.Add("10", "Ten");
      numberNames.Add("20", "Twenty");
      numberNames.Add("30", "Thirty");
      numberNames.Add("40", "Forty");
      numberNames.Add("50", "Fifty");
      numberNames.Add("60", "Sixty");
      
      //print hahshtable collection
      Console.WriteLine("Hashtable items:");
      foreach(DictionaryEntry entry in numberNames){
         Console.WriteLine("{0} => {1} ", entry.Key, entry.Value);
      }
      string text = "";
      IDictionaryEnumerator enumerator = numberNames.GetEnumerator();
      while (enumerator.MoveNext()) {
         text += enumerator.Key + " and ";
         text += enumerator.Value + "
"; } Console.WriteLine("String value: {0}", text); } }

此程式與上一個程式類似,只是在雜湊表和字串值顯示方式上略有改動。

這裡我們有一個數字名稱雜湊表,鍵為數字,值為其對應的數字名稱。然後,我們宣告一個 IDictionaryEnumerator,使用它遍歷雜湊表並將雜湊表的每個專案(鍵和值)複製到字串中。每個雜湊表專案都以分隔符“
”分隔。

輸出

該程式生成以下輸出。

Hashtable items:
10 => Ten 
60 => Sixty 
40 => Forty 
50 => Fifty 
20 => Twenty 
30 => Thirty 
String value: 10 and Ten
60 and Sixty
40 and Forty
50 and Fifty
20 and Twenty
30 and Thirty

從上面的輸出中我們可以看到,雜湊表集合項已成功複製到字串變數中。

因此,在本文中,我們討論了將雜湊表集合轉換為字串。雖然沒有直接的方法來進行這種轉換,但我們可以透過使用 IDictionaryEnumerator 輕鬆地將雜湊表集合轉換為字串。它儲存雜湊表的專案(鍵和值),我們可以輕鬆訪問這些專案並使用迴圈將其複製到字串中。

更新於: 2023年1月6日

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告