How to create a HashTable collection in C#?
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



The usage methods of symbols in C language cover arithmetic, assignment, conditions, logic, bit operators, etc. Arithmetic operators are used for basic mathematical operations, assignment operators are used for assignment and addition, subtraction, multiplication and division assignment, condition operators are used for different operations according to conditions, logical operators are used for logical operations, bit operators are used for bit-level operations, and special constants are used to represent null pointers, end-of-file markers, and non-numeric values.

In C, the char type is used in strings: 1. Store a single character; 2. Use an array to represent a string and end with a null terminator; 3. Operate through a string operation function; 4. Read or output a string from the keyboard.

In C language, special characters are processed through escape sequences, such as: \n represents line breaks. \t means tab character. Use escape sequences or character constants to represent special characters, such as char c = '\n'. Note that the backslash needs to be escaped twice. Different platforms and compilers may have different escape sequences, please consult the documentation.

In C language, the main difference between char and wchar_t is character encoding: char uses ASCII or extends ASCII, wchar_t uses Unicode; char takes up 1-2 bytes, wchar_t takes up 2-4 bytes; char is suitable for English text, wchar_t is suitable for multilingual text; char is widely supported, wchar_t depends on whether the compiler and operating system support Unicode; char is limited in character range, wchar_t has a larger character range, and special functions are used for arithmetic operations.

The difference between multithreading and asynchronous is that multithreading executes multiple threads at the same time, while asynchronously performs operations without blocking the current thread. Multithreading is used for compute-intensive tasks, while asynchronously is used for user interaction. The advantage of multi-threading is to improve computing performance, while the advantage of asynchronous is to not block UI threads. Choosing multithreading or asynchronous depends on the nature of the task: Computation-intensive tasks use multithreading, tasks that interact with external resources and need to keep UI responsiveness use asynchronous.

In C language, char type conversion can be directly converted to another type by: casting: using casting characters. Automatic type conversion: When one type of data can accommodate another type of value, the compiler automatically converts it.

There is no built-in sum function in C language, so it needs to be written by yourself. Sum can be achieved by traversing the array and accumulating elements: Loop version: Sum is calculated using for loop and array length. Pointer version: Use pointers to point to array elements, and efficient summing is achieved through self-increment pointers. Dynamically allocate array version: Dynamically allocate arrays and manage memory yourself, ensuring that allocated memory is freed to prevent memory leaks.

The char array stores character sequences in C language and is declared as char array_name[size]. The access element is passed through the subscript operator, and the element ends with the null terminator '\0', which represents the end point of the string. The C language provides a variety of string manipulation functions, such as strlen(), strcpy(), strcat() and strcmp().
