C#中如何将哈希表转换为字符串

C#中如何将哈希表转换为字符串

C#中的hashtable集合是一个非通用的元素集合。hashtable的每个元素都被表示为一个键值对。hashtable的键是非空的和唯一的。值可以是重复的和/或空的。

C#系统的Hashtable类。集合接口是Hashtable集合的表示。这个类提供了各种构造函数、方法和属性来操作hashtable集合。

我们还可以将hashtables转换成其他集合,如数组、ArrayList等,也可以转换成字符串表示。

在这篇文章中,让我们讨论一下如何将一个hashtable集合转换成一个字符串。

如何将hashtable项目转换为字符串

请注意,要将hashtable项目转换为字符串,hashtable类并没有像Java那样提供一个直接的方法。也没有内置的属性来做这种转换。因此,我们需要设计自己的方法来将hashtable元素转换为字符串表示。

为此,我们将不得不遍历hashtable集合,然后将每个项目的键和值复制到字符串中。我们可以放一个分隔符来分隔字符串中的每个键值项目。

为了实际使用C#编程,我们使用一个IDictionaryEnumerator,它将遍历hashtable中的每个项目。枚举器持有hashtable的每个项目(Key & value)。然后我们可以使用一个循环将每个键和值复制到字符串中,如下所示。

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

正如我们在上面的代码中所看到的,在每个键值对被复制到字符串之后,我们插入了一个分界符’
‘这样,每一项都被分开。

示例

在C#中,将hashtable项目转换为字符串的完整程序如下所示。

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的语音的哈希表。然后我们声明一个IDictioanaryEnumerator来遍历这个hashtable。然后使用这个枚举器,我们用一个’while’循环将hashtable集合的内容复制到字符串中。

输出

该程序产生的输出结果如下。

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

在这里,我们首先显示了hashtable集合的内容。接下来,我们显示了字符串。我们可以看到,字符串的值由hashtable的所有元素组成,用”分隔。
‘(换行)。

示例

让我们来实现另一个程序,将hashtable转换为一个字符串。下面给出了完整的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);
   }
}

这个程序与前一个程序相似,只是在hashtable和字符串值的显示方式上有一些小的变化。

在这里,我们有一个数字名称哈希表,其键为数字,值为其相应的数字名称。然后我们声明一个IDictionaryEnumerator,用它来遍历hashtable,并将hashtable的每个项目(key & value)复制到一个字符串中。每个hashtable项目都由一个分隔符”分隔。
‘.

输出

该程序产生的输出结果如下。

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

从上面的输出中我们可以看到,hashtable集合项被成功地复制到了字符串变量中。

所以在这篇文章中,我们已经讨论了将hashtable集合转换为字符串。虽然没有直接的方法来做这种转换,但我们可以通过使用IDictionaryEnumerator来轻松地将hashtable集合转换为字符串。它持有hashtable的项目(包括key和value),我们可以很容易地访问这些项目,并通过一个循环将其复制到字符串中。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程