Home  >  Article  >  Backend Development  >  How to create a HashTable collection in C#?

How to create a HashTable collection in C#?

PHPz
PHPzforward
2023-08-31 23:13:02998browse

如何在 C# 中创建 HashTable 集合?

HashTable is a non-generic collection in C#. It stores key-value pairs, similar to a general-purpose "dictionary" collection. HashTable is defined in

System. Collections. namespace.

HashTable Calculate the hash code for each key and store it in different buckets internally. Then, when the value is accessed, the hash code is matched against the hash code of the specified key. Therefore, lookup is optimized via HashTable.

In this tutorial, we will learn how to create a HashTable collection in C#.

Hash table function

Before we start creating a HashTable, let us look at some of the notable features of the HashTable collection in C#.

HashTable collection stores key-value pairs.

The hash table is part of the system. Collection namespace in C# and implements the IDictionary interface. The elements of a HashTable are stored as DictionaryEntry objects.

The key of the hash table cannot be empty and is unique. However, the value can be empty or duplicate.

Values ​​in a hash table can be accessed using the keys in the indexer, just like array values.

Keys in HashTable are immutable objects. Each of these key objects provides a hash function.

The typical Hashtable class implements C#'s IDictionary, ICollection, ISerializable, IEnumerable, IDeserializationCallback and ICloneable interfaces.

The elements stored in HashTable can be of the same type or different types.

Keeping these salient features in mind, let us now discuss how to create a hash table in C#.

How to create a HashTable collection in C#?

C#'s HashTable class provides 16 overloaded constructors to create HashTable.

The following table shows the HashTable constructor we will use in this article.

Constructor describe
Hash table() Initialize a new, empty instance of the HashTable class with default initial capacity, hash code provider, comparator and load factor.
Hash table (IDictionary) Create a new instance of the Hashtable class and initialize it with the contents of the specified dictionary.

Note- To know more about HashTable class in C#, read our article C#-HashTable class.

Let us look at the steps usually followed to create a HashTable collection in C#.

First, we include the System.collection namespace in our program

using System. Collections;

Next, we create a hash table using the Hashtable class. For this we use the default constructor.

Hashtable hashtable_name = new Hashtable();

Now we can use the "Add()" method to add elements to the HashTable.

So here, we can initialize the entire HashTable while creating a HashTable instance, or we can use the Add() method to add elements to the HashTable one by one.

Example 1

The following program demonstrates creating a HashTable in C#.

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

      // Create hashtable using the default constructor
      Hashtable indianNumberSystem = new Hashtable();
      
      //add a key/value pair using the Add() method
      indianNumberSystem.Add(1,"Ones"); 
      indianNumberSystem.Add(10,"Tens");
      indianNumberSystem.Add(100,"Hundred");
      indianNumberSystem.Add(1000,"Thousand");
      indianNumberSystem.Add(10000,"Ten Thousand");
      indianNumberSystem.Add(100000,"Lac");
      indianNumberSystem.Add(1000000,"Ten Lac");
      indianNumberSystem.Add(10000000,"Crore");
      
      //display HashTable contents
      Console.WriteLine("Key, Value pairs from Indian Number System:");
      foreach(DictionaryEntry ele1 in indianNumberSystem){
         Console.WriteLine("{0} ({1}) ", ele1.Key, ele1.Value);
      }      
   }
}

In the above program, we define a HashTable instance using the default constructor. We then add the key/value pairs to the HashTable using the Add() method. Finally, use a for-each loop to print out the contents of the HashTable one by one.

Output

The above program generates the following output.

Key, Value pairs from Indian Number System:
100 (Hundred) 
1000 (Thousand) 
10 (Tens) 
1000000 (Ten Lac) 
100000 (Lac) 
10000000 (Crore) 
10000 (Ten Thousand) 
1 (Ones)

The program displays a hash table containing the place values ​​of the Indian numeral system. Note that since this is a simple program that creates a hash table and adds content to it, the output is unformatted.

Example 2

Let’s take another example of creating a HashTable in C#. The following program uses different constructors to create a HashTable.

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

      // Create hashtable without using Add method
      Hashtable my_hashtable1 = new Hashtable() {{"K1", "New York"}};

      // Adding key/value pair in the hashtable using Add() method
      my_hashtable1.Add("K2", "Paris");
      my_hashtable1.Add("K3", "London");
      my_hashtable1.Add("K4", "Mumbai");
      my_hashtable1.Add("K5", "Berlin");
      
      Console.WriteLine("Key, Value pairs from my_hashtable1:");
      foreach(DictionaryEntry ele1 in my_hashtable1){
         Console.WriteLine("{0} and {1} ", ele1.Key, ele1.Value);
      }      
   }
}

As we can see in the code above, first we create a HashTable object with a key-value pair. Then we use the add() method of the HashTable class to add elements to the HashTable. Finally, using a for-each loop, iterate over the HashTable object to print each hashTable element (key-value pair).

Output

The above program produces the following output.

Key, Value pairs from my_hashtable1:
K2 and Paris 
K1 and New York 
K3 and London 
K4 and Mumbai 
K5 and Berlin 

In the above output, the key-value pairs are displayed in reverse alphabetical order of values. This is the default output of the hash table because we did not provide any code to format the output. The HashTable class provides various methods to organize/format the output, which we will learn in subsequent tutorials.

In this tutorial, we discussed how to create a HashTable collection in C#. HashTable is a non-generic collection of key-value pairs. The keys in the HashTable are unique non-null values. Values ​​can be empty and repeated. We can create a HashTable in C# using the HashTable class provided by Systems. Collection interface and modify it using the various methods provided by this class.

The above is the detailed content of How to create a HashTable collection in C#?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete