How to Create a Dictionary of Dictionaries in C#


How to Create a Dictionary of Dictionaries in C# ?

Answer

To create a dictionary of dictionaries in C#, you can declare a dictionary where the value type is another dictionary. This allows you to create nested dictionaries, with each key in the outer dictionary mapping to another dictionary.



✐ Examples

1 Creating a Dictionary of Dictionaries

We can create a dictionary of dictionaries in C# by declaring a dictionary where the value type is another dictionary. This example demonstrates how to declare and initialize a dictionary of dictionaries, add key-value pairs to the inner dictionaries, and print the resulting nested dictionary.

For example,

  1. We start by including the necessary namespace: using System.Collections.Generic;.
  2. We declare and initialize a dictionary named outerDict where the value type is another dictionary.
  3. We add key-value pairs to the inner dictionaries.
  4. We print the resulting nested dictionary.

C# Program

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Declare and initialize a dictionary of dictionaries
        Dictionary<string, Dictionary<string, int>> outerDict = new Dictionary<string, Dictionary<string, int>>
        {
            { "A", new Dictionary<string, int> { { "X", 1 }, { "Y", 2 } } },
            { "B", new Dictionary<string, int> { { "Z", 3 } } }
        };

        // Print the resulting nested dictionary
        Console.WriteLine("Dictionary of dictionaries:");
        foreach (var outerKvp in outerDict)
        {
            Console.WriteLine("Key: {0}", outerKvp.Key);
            foreach (var innerKvp in outerKvp.Value)
            {
                Console.WriteLine("  Inner Key: {0}, Value: {1}", innerKvp.Key, innerKvp.Value);
            }
        }
    }
}

Output

Dictionary of dictionaries:
Key: A
  Inner Key: X, Value: 1
  Inner Key: Y, Value: 2
Key: B
  Inner Key: Z, Value: 3

2 Creating and Adding to a Dictionary of Dictionaries Dynamically

We can create and add to a dictionary of dictionaries dynamically in C# by declaring a dictionary where the value type is another dictionary. This example demonstrates how to declare the outer dictionary, add inner dictionaries dynamically, add key-value pairs to the inner dictionaries, and print the resulting nested dictionary.

For example,

  1. We start by including the necessary namespace: using System.Collections.Generic;.
  2. We declare the outer dictionary named outerDict where the value type is another dictionary.
  3. We add inner dictionaries dynamically.
  4. We add key-value pairs to the inner dictionaries.
  5. We print the resulting nested dictionary.

C# Program

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Declare the outer dictionary
        Dictionary<string, Dictionary<string, int>> outerDict = new Dictionary<string, Dictionary<string, int>>();

        // Add inner dictionaries dynamically
        outerDict["A"] = new Dictionary<string, int>();
        outerDict["B"] = new Dictionary<string, int>();

        // Add key-value pairs to the inner dictionaries
        outerDict["A"]["X"] = 1;
        outerDict["A"]["Y"] = 2;
        outerDict["B"]["Z"] = 3;

        // Print the resulting nested dictionary
        Console.WriteLine("Dictionary of dictionaries:");
        foreach (var outerKvp in outerDict)
        {
            Console.WriteLine("Key: {0}", outerKvp.Key);
            foreach (var innerKvp in outerKvp.Value)
            {
                Console.WriteLine("  Inner Key: {0}, Value: {1}", innerKvp.Key, innerKvp.Value);
            }
        }
    }
}

Output

Dictionary of dictionaries:
Key: A
  Inner Key: X, Value: 1
  Inner Key: Y, Value: 2
Key: B
  Inner Key: Z, Value: 3

Summary

In this tutorial, we learned How to Create a Dictionary of Dictionaries in C# language with well detailed examples.




More C# Dictionaries Tutorials

  1. How to create an Empty Dictionary in C# ?
  2. How to create a Dictionary with Initial Key-Value Pairs in C# ?
  3. How to Print a Dictionary in C# ?
  4. How to Add a Key-Value Pair to a Dictionary in C# ?
  5. How to Set a Default Value for a Key in a Dictionary in C# ?
  6. How to Update the Value for a Key in a Dictionary in C# ?
  7. How to Check if a Dictionary is Empty in C# ?
  8. How to Check if a Key Exists in a Dictionary in C# ?
  9. How to Check if a Value Exists in a Dictionary in C# ?
  10. How to Get the Value Associated with a Key in a Dictionary in C# ?
  11. How to Remove a Key-Value Pair from a Dictionary in C# ?
  12. How to Remove Key-Value Pairs from a Dictionary Based on Values in C# ?
  13. How to Clear all Key-Value Pairs from a Dictionary in C# ?
  14. How to Iterate over Keys in a Dictionary in C# ?
  15. How to Iterate over Values in a Dictionary in C# ?
  16. How to Iterate over Entries (Key-Value Pairs) in a Dictionary in C# ?
  17. How to Get the Size (Number of Key-Value Pairs) of a Dictionary in C# ?
  18. How to Convert a Dictionary to an Array of Keys in C# ?
  19. How to Convert a Dictionary to an Array of Values in C# ?
  20. How to Convert a Dictionary to an Array of Key-Value Pairs in C# ?
  21. How to Merge Two Dictionaries in C# ?
  22. How to Clone a Dictionary in C# ?
  23. How to Check if Two Dictionaries are Equal in C# ?
  24. How to Sort a Dictionary by Keys in C# ?
  25. How to Sort a Dictionary by Values in C# ?
  26. How to Filter a Dictionary Based on Keys in C# ?
  27. How to Filter a Dictionary Based on Values in C# ?
  28. How to Reduce Values in a Dictionary to a Single Value in C# ?
  29. How to Convert an Array of Key-Value Pairs to a Dictionary in C# ?
  30. How to Convert a Dictionary to a JSON String in C# ?
  31. How to Convert a JSON String to a Dictionary in C# ?
  32. How to Swap Keys and Values in a Dictionary in C# ?
  33. How to Create a Dictionary of Dictionaries in C# ?
  34. How to Iterate Over a Dictionary of Dictionaries in C# ?