Hashtable in C# is a collection of key-value pairs organized based on key hash codes. Items in a hashtable can be accessed using keys. C#'s Hashtable class is a class that implements hashtable.
Using this class, we can create a new hash table object with the help of the provided constructor. The Hashtable class also provides various methods using which we can perform various operations on the hash table. These operations include adding an item, checking if a specified key exists, counting the number of items, deleting items from a hash table, etc.
In this article, we will discuss removing an item from a hash table collection given a specified key.
The Hashtable class provides a method named "Remove" for removing an item from the hashtable collection. Given a key, the Remove method will remove the item with the specified key from the hashtable.
The prototype of the Remove method is given below.
public virtual void Remove (object key);
Key − The key of the element to be removed from the hash table collection. This is of type System.Object.
Remove(Object) method is part of the IDictionary interface.
ArgumentNullException −If the specified key is null, this exception is thrown.
NotSupportedException − Thrown if the hash table has a fixed size or is read-only.
If the specified key does not exist in the hash table, the Remove() method will not throw any exception. If the key does not exist, the hash table will remain unchanged and the program will execute successfully.
The following program demonstrates how to use the Remove() method to remove items from a hash table collection.
using System; using System.Collections; class MyHashTable { public static void Main(){ // Creating a Hashtable Hashtable numberNames = new Hashtable(); // Adding elements in Hashtable numberNames.Add("2", "Two"); numberNames.Add("13", "Thirteen"); numberNames.Add("24", "Twenty Four"); numberNames.Add("59", "Fifty Nine"); // Print the contents of Hashtable Console.WriteLine("**********Contents of Hashtable**********"); foreach(var item in numberNames.Keys){ Console.WriteLine("key ={0}, Value = {1}", item,numberNames[item]); } //read the key for which element is to be deleted Console.WriteLine("Enter the key for which the element is to be removed from Hashtable "); string key = (string)Console.ReadLine(); //remove the element numberNames.Remove(key); //display the hashtable after deletion Console.WriteLine("******Contents of Hashtable(after deletion)******"); foreach(var item in numberNames.Keys){ Console.WriteLine("key ={0}, Value = {1}", item,numberNames[item]); } } }
In this program, first we create a hash table, where the keys are numbers and the values are the corresponding numeric names. The hash table is then displayed on the screen. Next, the user is prompted for the key of the element to be removed from the hash table. Once the key is entered, the Remove() method is called, passing the key as a parameter. Then display the contents of the hash table again. If the key exists in the hash table, the Remove() method will remove the element, otherwise, the hash table will remain unchanged.
The program generates the following output.
**********Contents of Hashtable********** key =59, Value = Fifty Nine key =24, Value = Twenty Four key =13, Value = Thirteen key =2, Value = Two Enter the key for which the element is to be removed from Hashtable 13 ******Contents of Hashtable(after deletion)****** key =59, Value = Fifty Nine key =24, Value = Twenty Four key =2, Value = Two
The above output shows the difference in the contents of the hash table before and after deletion.
Now let's see how the output changes when the user enters a key that does not exist in the hash table. In this case, as already mentioned, the hash table remains unchanged and no exception is thrown. The following is the output generated by the above program.
**********Contents of Hashtable********** key =59, Value = Fifty Nine key =24, Value = Twenty Four key =13, Value = Thirteen key =2, Value = Two Enter the key for which the element is to be removed from Hashtable 3 ******Contents of Hashtable(after deletion)****** key =59, Value = Fifty Nine key =24, Value = Twenty Four key =13, Value = Thirteen key =2, Value = Two
Here, the user entered key = 3, but it does not exist in the hash table. In this case, since the Remove() method does not remove any elements, the hash table remains unchanged.
Now let us consider another example of hash table deletion. The corresponding procedure is shown below.
using System; using System.Collections; public class myHashtable{ public static void Main(){ // Create a new Hashtable. var tongueTwister = new Hashtable(); tongueTwister.Add("1a", "She"); tongueTwister.Add("1b", "sells"); tongueTwister.Add("1c", "sea"); tongueTwister.Add("2a", "shells"); tongueTwister.Add("2b", "on"); tongueTwister.Add("2c", "the"); tongueTwister.Add("3a", "sea"); tongueTwister.Add("3b", "shore"); // Displays the Hashtable. Console.WriteLine("The Hashtable initially contains the following:"); foreach (DictionaryEntry elem in tongueTwister) Console.WriteLine($" {elem.Key}: {elem.Value}"); Console.WriteLine(); // Removes the element with the specified key. string key = “3b”; tongueTwister.Remove(key); // Displays the Hashtable after deletion. Console.WriteLine("Hashtable after removing the key = "{0}":",key); foreach (DictionaryEntry elem in tonguetwister) Console.WriteLine($" {elem.Key}: {elem.Value}"); Console.WriteLine(); } }
In this program we have a hash table containing the tongue twister "She sells seashells at the beach". We number the keys 1a, 1b, 1c, 2a, 2b, etc. First, we display the entire hash table. Then we use the Remove() method and delete the element with key = 3b. The newly updated hash table is displayed again.
The program generates the following output.
The Hashtable initially contains the following: 3b: shore 1a: She 1b: sells 2b: on 2c: the 3a: sea 2a: shells 1c: sea Hashtable after removing the key = "3b": 1a: She 1b: sells 2b: on 2c: the 3a: sea 2a: shells 1c: sea Note the hashtable after deleting the key = 3b.
The Remove() method of the Hashtable class is used to delete or delete elements in the hash table one by one. The Remove() method does not throw an exception if the specified key (parameter of the method) does not exist in the hash table. It will continue executing the program without changing the hash table.
That’s all about the Remove() method, which is used to remove items from a hash table collection based on a specified key.
The above is the detailed content of How to remove items from hash table collection in C#?. For more information, please follow other related articles on the PHP Chinese website!