Open In App

C# ListDictionary Class

Last Updated : 03 Feb, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

In C#, the ListDictionary class is the part of the System.Collections.Specialized namespace. It is a collection that stores key-value pairs. It is used in scenarios where the number of elements is relatively small and the order of insertion needs to be preserved.

  • It uses a single LinkedList to store key-value pairs.
  • It preserves insertion order.
  • The key cannot be null, but values can be null.
  • It is not suitable for large datasets due to performance limitations.

Example: This example demonstrates how to add elements to a ListDictionary and then display its elements.

C#
// C# program to add elements to a ListDictionary
using System;
using System.Collections.Specialized;
using System.Collections;

class Geeks
{
    static void Main()
    {
        // Create a new ListDictionary
        ListDictionary ld = new ListDictionary();

        // Add key-value pairs to the ListDictionary
        ld.Add("Geek1", 1);
        ld.Add("Geek2", 2);
        ld.Add("Geek3", 3);

        // Display the elements in the ListDictionary
        Console.WriteLine("Elements in the ListDictionary:");
        foreach (DictionaryEntry i in ld)
        {
            Console.WriteLine($"{i.Key}: {i.Value}");
        }
    }
}

Output
Elements in the ListDictionary:
Geek1: 1
Geek2: 2
Geek3: 3

Declarartion of ListDictionary

In C#, the declaration of Dictionary can be done as:

ListDictionary variableName = new ListDictionary();

Constructors

ConstructorsDescription
ListDictionary()Creates an empty ListDictionary using the default comparer.
ListDictionary(IComparer)Creates an empty ListDictionary using the specified compare

Example: This example demonstrates how to retrieve the count of pairs and displaying the key-value pair.

C#
// C# program to demonstrates the 
// working of Count property
using System;
using System.Collections;
using System.Collections.Specialized;

class Geeks {

    public static void Main()
    {

        // Creating a ListDictionary named ld 
        ListDictionary ld = new ListDictionary();

        // Adding key/value pairs
        ld.Add("Java", "1");
        ld.Add("C++", "2");
        ld.Add("Js", "3");
        ld.Add("Python", "4");

        // To get count of key-value pairs
        Console.WriteLine("Total number of Key-value pairs: " 
                          + ld.Count);

        // Displaying the key-value pairs
        Console.WriteLine("Displaying the key-value pair: ");

        foreach(DictionaryEntry i in ld)
        {
            Console.WriteLine("Key: "+i.Key + " , "+ "Value: " 
                              + i.Value);
        }
    }
} 

Output
Total number of Key-value pairs: 4
Displaying the key-value pair: 
Key: Java , Value: 1
Key: C++ , Value: 2
Key: Js , Value: 3
Key: Python , Value: 4

Properties

PropertiesDescription
CountGets the number of key/value pairs contained in the ListDictionary.
IsFixedSizeGets a value indicating whether the ListDictionary has a fixed size.
IsReadOnlyGets a value indicating whether the ListDictionary is read-only.
IsSynchronizedGets a value indicating whether the ListDictionary is synchronized (thread safe).
Item[Object]Gets or sets the value associated with the specified key.
KeysGets an ICollection containing the keys in the ListDictionary.
SyncRootGets an object that can be used to synchronize access to the ListDictionary.
ValuesGets an ICollection containing the values in the ListDictionary.

Example 1: This example demonstrates how to retrieve the count of pairs.

C#
// C# Program to get the number 
// of key/value pairs contained 
// in the ListDictionary 
using System;
using System.Collections;
using System.Collections.Specialized;

class Geeks {

    public static void Main()
    {
        // Creating a ListDictionary named ld 
        ListDictionary ld = new ListDictionary();

        // Adding key/value pairs 
        ld.Add("100", "1");
        ld.Add("200", "2");
        ld.Add("300", "3");
        ld.Add("400", "4");

        // Displaying the number of key/value 
        // pairs contained in the ListDictionary 
        Console.WriteLine(ld.Count);
    }
}

Output
4

Example 2: This example checks if the dictionary is read-only.

C#
// C# program demonstrates the 
// use of IsReadOnly properity
using System;
using System.Collections;
using System.Collections.Specialized;

class Geeks {

    public static void Main() {
        // Creating a ListDictionary named ld
        ListDictionary ld = new ListDictionary();

        // Adding key/value pairs in l
        ld.Add("100", "1");
        ld.Add("200", "2");
        ld.Add("300", "3");
        ld.Add("400", "4");

        // Checking if ListDictionary is read-only 
        Console.WriteLine(ld.IsReadOnly);
    }
}

Output
False

Methods

MethodsDescription
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: This example demonstrates how to remove all the entries using Clear() method.

C#
// C# Program to remove all entries 
// from the ListDictionary 
using System;
using System.Collections;
using System.Collections.Specialized;

class Geeks {

    public static void Main()
    {
        // Creating a ListDictionary named ld 
        ListDictionary ld = new ListDictionary();

        // Adding key/value pairs in l 
        ld.Add("I", "first");
        ld.Add("II", "second");

        // To get count of key/value pairs 
        Console.WriteLine("Total key-value pairs in ListDictionary are: "
                + ld.Count);

        // Displaying the key/value pairs 
        Console.WriteLine("The key-value pairs in ListDictionary are: ");

        foreach(DictionaryEntry i in ld)
        {
            Console.WriteLine(i.Key + " " + i.Value);
        }

        // Removing all entries from the ListDictionary 
        ld.Clear();

        // To get count of key/value pairs 
        Console.WriteLine("Total key/value pairs in ListDictionary are: "
                + ld.Count);
    }
} 

Output
Total key-value pairs in ListDictionary are: 2
The key-value pairs in ListDictionary are: 
I first
II second
Total key/value pairs in ListDictionary are: 0

Next Article

Similar Reads