How to Sort a Dictionary by Keys in C# - Step by Step Examples
How to Sort a Dictionary by Keys in C# ?
Answer
To sort a dictionary by keys in C#, you can use the `OrderBy` method from the `System.Linq` namespace and convert the sorted result back to a dictionary using the `ToDictionary` method. This allows you to create a new dictionary with the key-value pairs sorted by key.
✐ Examples
1 Sorting a Dictionary by Keys Using `OrderBy`
We can sort a dictionary by keys in C# using the `OrderBy` method from the `System.Linq` namespace. This example demonstrates how to declare and initialize a dictionary, use the `OrderBy` method to sort the dictionary by keys, and print the sorted dictionary.
For example,
- We start by including the necessary namespaces: 
using System.Collections.Generic;andusing System.Linq;. - We declare and initialize a dictionary named 
myDictionarywith integer keys and string values. - We use the `OrderBy` method to sort the dictionary by keys.
 - We convert the sorted result to a dictionary using the `ToDictionary` method.
 - We print the sorted dictionary.
 
C# Program
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
    static void Main()
    {
        // Declare and initialize a dictionary
        Dictionary<int, string> myDictionary = new Dictionary<int, string>
        {
            {3, "Three"},
            {1, "One"},
            {2, "Two"}
        };
        // Sort the dictionary by keys using OrderBy
        Dictionary<int, string> sortedDict = myDictionary
            .OrderBy(kvp => kvp.Key)
            .ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
        // Print the sorted dictionary
        Console.WriteLine("Sorted dictionary:");
        foreach (var kvp in sortedDict)
        {
            Console.WriteLine("Key: {0}, Value: {1}", kvp.Key, kvp.Value);
        }
    }
}Output
Sorted dictionary: Key: 1, Value: One Key: 2, Value: Two Key: 3, Value: Three
2 Sorting a Dictionary by Keys in Descending Order
We can sort a dictionary by keys in descending order in C# using the `OrderByDescending` method from the `System.Linq` namespace. This example demonstrates how to declare and initialize a dictionary, use the `OrderByDescending` method to sort the dictionary by keys in descending order, and print the sorted dictionary.
For example,
- We start by including the necessary namespaces: 
using System.Collections.Generic;andusing System.Linq;. - We declare and initialize a dictionary named 
myDictionarywith integer keys and string values. - We use the `OrderByDescending` method to sort the dictionary by keys in descending order.
 - We convert the sorted result to a dictionary using the `ToDictionary` method.
 - We print the sorted dictionary.
 
C# Program
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
    static void Main()
    {
        // Declare and initialize a dictionary
        Dictionary<int, string> myDictionary = new Dictionary<int, string>
        {
            {3, "Three"},
            {1, "One"},
            {2, "Two"}
        };
        // Sort the dictionary by keys in descending order using OrderByDescending
        Dictionary<int, string> sortedDict = myDictionary
            .OrderByDescending(kvp => kvp.Key)
            .ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
        // Print the sorted dictionary
        Console.WriteLine("Sorted dictionary:");
        foreach (var kvp in sortedDict)
        {
            Console.WriteLine("Key: {0}, Value: {1}", kvp.Key, kvp.Value);
        }
    }
}Output
Sorted dictionary: Key: 3, Value: Three Key: 2, Value: Two Key: 1, Value: One
Summary
In this tutorial, we learned How to Sort a Dictionary by Keys in C# language with well detailed examples.
More C# Dictionaries Tutorials
- How to create an Empty Dictionary in C# ?
 - How to create a Dictionary with Initial Key-Value Pairs in C# ?
 - How to Print a Dictionary in C# ?
 - How to Add a Key-Value Pair to a Dictionary in C# ?
 - How to Set a Default Value for a Key in a Dictionary in C# ?
 - How to Update the Value for a Key in a Dictionary in C# ?
 - How to Check if a Dictionary is Empty in C# ?
 - How to Check if a Key Exists in a Dictionary in C# ?
 - How to Check if a Value Exists in a Dictionary in C# ?
 - How to Get the Value Associated with a Key in a Dictionary in C# ?
 - How to Remove a Key-Value Pair from a Dictionary in C# ?
 - How to Remove Key-Value Pairs from a Dictionary Based on Values in C# ?
 - How to Clear all Key-Value Pairs from a Dictionary in C# ?
 - How to Iterate over Keys in a Dictionary in C# ?
 - How to Iterate over Values in a Dictionary in C# ?
 - How to Iterate over Entries (Key-Value Pairs) in a Dictionary in C# ?
 - How to Get the Size (Number of Key-Value Pairs) of a Dictionary in C# ?
 - How to Convert a Dictionary to an Array of Keys in C# ?
 - How to Convert a Dictionary to an Array of Values in C# ?
 - How to Convert a Dictionary to an Array of Key-Value Pairs in C# ?
 - How to Merge Two Dictionaries in C# ?
 - How to Clone a Dictionary in C# ?
 - How to Check if Two Dictionaries are Equal in C# ?
 - How to Sort a Dictionary by Keys in C# ?
 - How to Sort a Dictionary by Values in C# ?
 - How to Filter a Dictionary Based on Keys in C# ?
 - How to Filter a Dictionary Based on Values in C# ?
 - How to Reduce Values in a Dictionary to a Single Value in C# ?
 - How to Convert an Array of Key-Value Pairs to a Dictionary in C# ?
 - How to Convert a Dictionary to a JSON String in C# ?
 - How to Convert a JSON String to a Dictionary in C# ?
 - How to Swap Keys and Values in a Dictionary in C# ?
 - How to Create a Dictionary of Dictionaries in C# ?
 - How to Iterate Over a Dictionary of Dictionaries in C# ?