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!

The combination of C# and .NET provides developers with a powerful programming environment. 1) C# supports polymorphism and asynchronous programming, 2) .NET provides cross-platform capabilities and concurrent processing mechanisms, which makes them widely used in desktop, web and mobile application development.

.NETFramework is a software framework, and C# is a programming language. 1..NETFramework provides libraries and services, supporting desktop, web and mobile application development. 2.C# is designed for .NETFramework and supports modern programming functions. 3..NETFramework manages code execution through CLR, and the C# code is compiled into IL and runs by CLR. 4. Use .NETFramework to quickly develop applications, and C# provides advanced functions such as LINQ. 5. Common errors include type conversion and asynchronous programming deadlocks. VisualStudio tools are required for debugging.

C# is a modern, object-oriented programming language developed by Microsoft, and .NET is a development framework provided by Microsoft. C# combines the performance of C and the simplicity of Java, and is suitable for building various applications. The .NET framework supports multiple languages, provides garbage collection mechanisms, and simplifies memory management.

C# and .NET runtime work closely together to empower developers to efficient, powerful and cross-platform development capabilities. 1) C# is a type-safe and object-oriented programming language designed to integrate seamlessly with the .NET framework. 2) The .NET runtime manages the execution of C# code, provides garbage collection, type safety and other services, and ensures efficient and cross-platform operation.

To start C#.NET development, you need to: 1. Understand the basic knowledge of C# and the core concepts of the .NET framework; 2. Master the basic concepts of variables, data types, control structures, functions and classes; 3. Learn advanced features of C#, such as LINQ and asynchronous programming; 4. Be familiar with debugging techniques and performance optimization methods for common errors. With these steps, you can gradually penetrate the world of C#.NET and write efficient applications.

The relationship between C# and .NET is inseparable, but they are not the same thing. C# is a programming language, while .NET is a development platform. C# is used to write code, compile into .NET's intermediate language (IL), and executed by the .NET runtime (CLR).

C#.NET is still important because it provides powerful tools and libraries that support multiple application development. 1) C# combines .NET framework to make development efficient and convenient. 2) C#'s type safety and garbage collection mechanism enhance its advantages. 3) .NET provides a cross-platform running environment and rich APIs, improving development flexibility.

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.


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

Atom editor mac version download
The most popular open source editor

SublimeText3 Linux new version
SublimeText3 Linux latest version

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Zend Studio 13.0.1
Powerful PHP integrated development environment

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.