C# | ListDictionary Class
ListDictionary is a specialized collection. It comes under the System.Collections.Specialized namespace. This type represents a non-generic dictionary type. It is implemented with a linked list. This class is a simple implementation of a dictionary collection (System.Collections.IDictionary) for small lists. It implements the IDictionary methods and properties, and is suggested for use with a small number of elements (less than 10).
Characteristics of ListDictionary Class:
- ListDictionary is a simple implementation of IDictionary using a singly linked list.
- It is smaller and faster than a Hashtable if the number of elements is 10 or less.
- ListDictionary should not be used if performance is important for large numbers of elements.
- Items in a ListDictionary are not in any guaranteed order.
- A key cannot be null, but a value can.
Constructors
| Constructor | Description |
|---|---|
| ListDictionary() | Creates an empty ListDictionary using the default comparer. |
| ListDictionary(IComparer) | Creates an empty ListDictionary using the specified comparer. |
Example:
// C# code to create a ListDictionaryusing System;using System.Collections;using System.Collections.Specialized; class GFG { // Driver codepublic static void Main(){ // Creating a ListDictionary named myDict ListDictionary myDict = new ListDictionary(); // Adding key/value pairs in myDict myDict.Add("Australia", "Canberra"); myDict.Add("Belgium", "Brussels"); myDict.Add("Netherlands", "Amsterdam"); myDict.Add("China", "Beijing"); myDict.Add("Russia", "Moscow"); myDict.Add("India", "New Delhi"); // To get count of key/value pairs in myDict Console.WriteLine("Total 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:
Total key/value pairs in myDict are : 6 The key/value pairs in myDict are : Australia Canberra Belgium Brussels Netherlands Amsterdam China Beijing Russia Moscow India New Delhi
Properties
| Property | Description |
|---|---|
| Count | Gets the number of key/value pairs contained in the ListDictionary. |
| IsFixedSize | Gets a value indicating whether the ListDictionary has a fixed size. |
| IsReadOnly | Gets a value indicating whether the ListDictionary is read-only. |
| IsSynchronized | Gets a value indicating whether the ListDictionary is synchronized (thread safe). |
| Item[Object] | Gets or sets the value associated with the specified key. |
| Keys | Gets an ICollection containing the keys in the ListDictionary. |
| SyncRoot | Gets an object that can be used to synchronize access to the ListDictionary. |
| Values | Gets an ICollection containing the values in the ListDictionary. |
Example 1:
// C# code to get the number// of key/value pairs contained// in the ListDictionaryusing System;using System.Collections;using System.Collections.Specialized; class GFG { // Driver code public static void Main() { // Creating a ListDictionary named myDict ListDictionary myDict = new ListDictionary(); // Adding key/value pairs in myDict myDict.Add("Australia", "Canberra"); myDict.Add("Belgium", "Brussels"); myDict.Add("Netherlands", "Amsterdam"); myDict.Add("China", "Beijing"); myDict.Add("Russia", "Moscow"); myDict.Add("India", "New Delhi"); // Displaying the number of key/value // pairs contained in the ListDictionary Console.WriteLine(myDict.Count); }} |
Output:
6
Example 2:
// C# code to check if ListDictionary is read-onlyusing System;using System.Collections;using System.Collections.Specialized; class GFG { // Driver code public static void Main() { // Creating a ListDictionary named myDict ListDictionary myDict = new ListDictionary(); myDict.Add("Australia", "Canberra"); myDict.Add("Belgium", "Brussels"); myDict.Add("Netherlands", "Amsterdam"); myDict.Add("China", "Beijing"); myDict.Add("Russia", "Moscow"); myDict.Add("India", "New Delhi"); // Checking if ListDictionary is read-only Console.WriteLine(myDict.IsReadOnly); }} |
Output:
False
Methods
| Method | Description |
|---|---|
| Add(Object, Object) | Adds an entry with the specified key and value into the ListDictionary. |
| Clear() | Removes all entries from the ListDictionary. |
| Contains(Object) | Determines whether the ListDictionary contains a specific key. |
| CopyTo(Array, Int32) | Copies the ListDictionary entries to a one-dimensional Array instance at the specified index. |
| Equals(Object) | Determines whether the specified object is equal to the current object. |
| GetEnumerator() | Returns an IDictionaryEnumerator that iterates through the ListDictionary. |
| GetHashCode() | Serves as the default hash function. |
| GetType() | Gets the Type of the current instance. |
| MemberwiseClone() | Creates a shallow copy of the current Object. |
| Remove(Object) | Removes the entry with the specified key from the ListDictionary. |
| ToString() | Returns a string that represents the current object. |
Example 1:
// C# code to add an entry with// the specified key and value// into the ListDictionaryusing System;using System.Collections;using System.Collections.Specialized; class GFG { // Driver codepublic static void Main(){ // Creating a ListDictionary named myDict ListDictionary myDict = new ListDictionary(); myDict.Add("Australia", "Canberra"); myDict.Add("Belgium", "Brussels"); myDict.Add("Netherlands", "Amsterdam"); myDict.Add("China", "Beijing"); myDict.Add("Russia", "Moscow"); myDict.Add("India", "New Delhi"); // Displaying the total number of elements in myDict Console.WriteLine("Total number of elements in myDict are : " + myDict.Count); // Displaying the elements in ListDictionary myDict foreach(DictionaryEntry de in myDict) { Console.WriteLine(de.Key + " " + de.Value); }}} |
Output:
Total number of elements in myDict are : 6 Australia Canberra Belgium Brussels Netherlands Amsterdam China Beijing Russia Moscow India New Delhi
Example 2:
// C# code to remove all entries// from the ListDictionaryusing System;using System.Collections;using System.Collections.Specialized; class GFG { // Driver codepublic static void Main(){ // Creating a ListDictionary named myDict ListDictionary myDict = new ListDictionary(); // 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"); // To get count of key/value pairs in myDict Console.WriteLine("Total 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 all entries from the ListDictionary myDict.Clear(); // To get count of key/value pairs in myDict Console.WriteLine("Total 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:
Total key/value pairs in myDict are : 5 The key/value pairs in myDict are : I first II second III third IV fourth V fifth Total key/value pairs in myDict are : 0 The key/value pairs in myDict are :
Reference:


