C# | Removing the specified key entry from HybridDictionary
HybridDictionary.Remove(Object) method is used to remove the entry with the specified key from the HybridDictionary.
Syntax:
public void Remove (object key);
Here, key is the key of the entry to remove.
Exception: This method throws ArgumentNullException if the key is null.
Below given are some examples to understand the implementation in a better way :
Example 1:
// C# code to remove the entry // with the specified key from // the HybridDictionary. using System; using System.Collections; using System.Collections.Specialized; class GFG { // Driver code public static void Main() { // Creating a HybridDictionary named myDict HybridDictionary myDict = new HybridDictionary(); // Adding key/value pairs in myDict myDict.Add( "A" , "Apple" ); myDict.Add( "B" , "Banana" ); myDict.Add( "C" , "Cat" ); myDict.Add( "D" , "Dog" ); myDict.Add( "E" , "Elephant" ); myDict.Add( "F" , "Fish" ); // Displaying the number of key/value // pairs in HybridDictionary myDict Console.WriteLine( "Number of key/value pairs in myDict are : " + myDict.Count); // Displaying the key/value pairs in myDict Console.WriteLine( "The key/value pairs in myDict are : " ); foreach (DictionaryEntry de in myDict) { Console.WriteLine(de.Key + " --> " + de.Value); } // Removing the entry with the // specified key from the HybridDictionary. myDict.Remove( "C" ); // Displaying the number of key/value // pairs in HybridDictionary myDict Console.WriteLine( "Number of key/value pairs in myDict are : " + myDict.Count); // Displaying the key/value pairs in myDict Console.WriteLine( "The key/value pairs in myDict are : " ); foreach (DictionaryEntry de in myDict) { Console.WriteLine(de.Key + " --> " + de.Value); } } } |
Output:
Number of key/value pairs in myDict are : 6 The key/value pairs in myDict are : A --> Apple B --> Banana C --> Cat D --> Dog E --> Elephant F --> Fish Number of key/value pairs in myDict are : 5 The key/value pairs in myDict are : A --> Apple B --> Banana D --> Dog E --> Elephant F --> Fish
Example 2:
// C# code to remove the entry // with the specified key from // the HybridDictionary. using System; using System.Collections; using System.Collections.Specialized; class GFG { // Driver code public static void Main() { // Creating a HybridDictionary named myDict HybridDictionary myDict = new HybridDictionary(); // Adding key/value pairs in myDict myDict.Add( "I" , "first" ); myDict.Add( "II" , "second" ); myDict.Add( "III" , "third" ); myDict.Add( "IV" , "fourth" ); myDict.Add( "V" , "fifth" ); // Displaying the number of key/value // pairs in HybridDictionary myDict Console.WriteLine( "Number of key/value pairs in myDict are : " + myDict.Count); // Displaying the key/value pairs in myDict Console.WriteLine( "The key/value pairs in myDict are : " ); foreach (DictionaryEntry de in myDict) { Console.WriteLine(de.Key + " --> " + de.Value); } // Removing the entry with the // specified key from the HybridDictionary. // This should raise "ArgumentNullException" // as the key is "null" myDict.Remove( null ); // Displaying the number of key/value // pairs in HybridDictionary myDict Console.WriteLine( "Number of key/value pairs in myDict are : " + myDict.Count); // Displaying the key/value pairs in myDict Console.WriteLine( "The key/value pairs in myDict are : " ); foreach (DictionaryEntry de in myDict) { Console.WriteLine(de.Key + " --> " + de.Value); } } } |
Runtime Error:
Unhandled Exception:
System.ArgumentNullException: Key cannot be null.
Parameter name: key
Note:
- If the HybridDictionary does not contain an element with the specified key, the HybridDictionary remains unchanged. No exception is thrown.
- If the collection is already stored in a Hashtable and the number of elements falls below the optimal size for a ListDictionary, the collection remains in the Hashtable to avoid the overhead of copying elements from the Hashtable back to a ListDictionary.
- This method is an O(1) operation.
Reference:
- https://docs.microsoft.com/en-us/dotnet/api/system.collections.specialized.hybriddictionary.remove?view=netframework-4.7.2