Open In App

C# | Creating a HybridDictionary with specified initial size & case sensitivity

Improve
Improve
Like Article
Like
Save
Share
Report

HybridDictionary(Int32, Boolean) creates a HybridDictionary with the specified initial size and case sensitivity.

Syntax:

public HybridDictionary (int initialSize, bool caseInsensitive);

Parameters:

  • initialSize : The approximate number of entries that the HybridDictionary can initially contain.
  • caseInsensitive : A Boolean that denotes whether the HybridDictionary is case-insensitive.

Below programs illustrate the use of HybridDictionary(Int32, Boolean):

Example 1:




// C# code to create a HybridDictionary
// with the specified initial size
// and case sensitivity.
using System;
using System.Collections;
using System.Collections.Specialized;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a HybridDictionary with the
        // specified initial size and case sensitivity.
        HybridDictionary myDict = new HybridDictionary(10, false);
  
        // Adding key/value pairs in myDict
        myDict.Add("I", "first");
  
        // This will not raise exception as the
        // Collection is not case-insensitive
        myDict.Add("i", "first");
        myDict.Add("II", "second");
        myDict.Add("III", "third");
        myDict.Add("IV", "fourth");
        myDict.Add("V", "fifth");
  
        // Displaying the key/value pairs in myDict
        foreach(DictionaryEntry de in myDict)
            Console.WriteLine(de.Key + " " + de.Value);
    }
}


Output:

III third
V fifth
II second
i first
I first
IV fourth

Example 2:




// C# code to create a HybridDictionary
// with the specified initial size
// and case sensitivity.
using System;
using System.Collections;
using System.Collections.Specialized;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a HybridDictionary with the
        // specified initial size and case sensitivity.
        HybridDictionary myDict = new HybridDictionary(10, true);
  
        // Adding key/value pairs in myDict
        myDict.Add("A", "Apple");
  
        // This will raise exception as the
        // Collection is case-insensitive
        myDict.Add("a", "Air");
        myDict.Add("B", "Banana");
        myDict.Add("C", "Cat");
        myDict.Add("D", "Dog");
        myDict.Add("E", "Elephant");
        myDict.Add("F", "Fish");
  
        // Displaying the key/value pairs in myDict
        foreach(DictionaryEntry de in myDict)
            Console.WriteLine(de.Key + " " + de.Value);
    }
}


Runtime Error:

Unhandled Exception:
System.ArgumentException: Item has already been added. Key in dictionary: ‘A’ Key being added: ‘a’
at System.Collections.Hashtable.Insert

Note:

  • If the initial size of the collection is greater than the optimal size for a ListDictionary, the collection is stored in a Hashtable to avoid the overhead of copying elements from the ListDictionary to the Hashtable.
  • This constructor is an O(n) operation, where n is initialSize.


Last Updated : 01 Feb, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads