SortedDictionary.Keys Property in C#

The SortedDictionary.Keys property in C# returns a collection containing all the keys in the SortedDictionary<TKey, TValue>. The keys are returned in sorted order based on the comparer used by the SortedDictionary.

Syntax

Following is the syntax for the Keys property −

public SortedDictionary<TKey,TValue>.KeyCollection Keys { get; }

Return Value

The Keys property returns a SortedDictionary<TKey,TValue>.KeyCollection containing all the keys in the SortedDictionary. The collection is read-only and reflects changes made to the underlying dictionary.

Using Keys Property with Integer Keys

Example

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      SortedDictionary<int, string> sortedDict = new SortedDictionary<int, string>();
      sortedDict.Add(1, "SUV");
      sortedDict.Add(2, "MUV");
      sortedDict.Add(3, "Utility Vehicle");
      sortedDict.Add(4, "AUV");
      sortedDict.Add(5, "Hatchback");
      sortedDict.Add(6, "Convertible");
      
      Console.WriteLine("SortedDictionary key-value pairs...");
      foreach (var pair in sortedDict) {
         Console.WriteLine("Key = " + pair.Key + ", Value = " + pair.Value);
      }
      
      Console.WriteLine("Count of SortedDictionary key-value pairs = " + sortedDict.Count);
      
      // Add more elements
      sortedDict.Add(7, "Seven");
      sortedDict.Add(8, "Eight");
      
      Console.WriteLine("\nSortedDictionary key-value pairs...UPDATED");
      foreach (var pair in sortedDict) {
         Console.WriteLine("Key = " + pair.Key + ", Value = " + pair.Value);
      }
      
      Console.WriteLine("Count of SortedDictionary key-value pairs (UPDATED) = " + sortedDict.Count);
      
      // Update a value
      Console.WriteLine("Value in the SortedDictionary key-value pair key five = " + sortedDict[5]);
      sortedDict[5] = "Crossover";
      Console.WriteLine("Value in the SortedDictionary key-value pair key five (updated) = " + sortedDict[5]);
      
      // Using Keys property
      SortedDictionary<int, string>.KeyCollection keyColl = sortedDict.Keys;
      Console.WriteLine("\nKeys...");
      foreach (int i in keyColl) {
         Console.WriteLine(i);
      }
   }
}

The output of the above code is −

SortedDictionary key-value pairs...
Key = 1, Value = SUV
Key = 2, Value = MUV
Key = 3, Value = Utility Vehicle
Key = 4, Value = AUV
Key = 5, Value = Hatchback
Key = 6, Value = Convertible
Count of SortedDictionary key-value pairs = 6

SortedDictionary key-value pairs...UPDATED
Key = 1, Value = SUV
Key = 2, Value = MUV
Key = 3, Value = Utility Vehicle
Key = 4, Value = AUV
Key = 5, Value = Hatchback
Key = 6, Value = Convertible
Key = 7, Value = Seven
Key = 8, Value = Eight
Count of SortedDictionary key-value pairs (UPDATED) = 8
Value in the SortedDictionary key-value pair key five = Hatchback
Value in the SortedDictionary key-value pair key five (updated) = Crossover

Keys...
1
2
3
4
5
6
7
8

Using Keys Property with Different Key Types

Example

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      SortedDictionary<int, string> sortedDict = new SortedDictionary<int, string>();
      sortedDict.Add(100, "Mobile");
      sortedDict.Add(200, "Laptop");
      sortedDict.Add(300, "Desktop");
      sortedDict.Add(400, "Speakers");
      sortedDict.Add(500, "Headphone");
      sortedDict.Add(600, "Earphone");
      
      Console.WriteLine("SortedDictionary key-value pairs...");
      foreach (var pair in sortedDict) {
         Console.WriteLine("Key = " + pair.Key + ", Value = " + pair.Value);
      }
      
      Console.WriteLine("\nThe SortedDictionary has the key 200? = " + sortedDict.ContainsKey(200));
      
      SortedDictionary<int, string>.KeyCollection keyColl = sortedDict.Keys;
      Console.WriteLine("\nKeys...");
      foreach (int i in keyColl) {
         Console.WriteLine(i);
      }
   }
}

The output of the above code is −

SortedDictionary key-value pairs...
Key = 100, Value = Mobile
Key = 200, Value = Laptop
Key = 300, Value = Desktop
Key = 400, Value = Speakers
Key = 500, Value = Headphone
Key = 600, Value = Earphone

The SortedDictionary has the key 200? = True

Keys...
100
200
300
400
500
600

Using Keys Collection with String Keys

Example

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      SortedDictionary<string, int> sortedDict = new SortedDictionary<string, int>();
      sortedDict.Add("Zebra", 1);
      sortedDict.Add("Apple", 2);
      sortedDict.Add("Mango", 3);
      sortedDict.Add("Banana", 4);
      
      Console.WriteLine("SortedDictionary entries (automatically sorted by key):");
      foreach (var pair in sortedDict) {
         Console.WriteLine("Key = " + pair.Key + ", Value = " + pair.Value);
      }
      
      Console.WriteLine("\nKeys in alphabetical order:");
      var keyCollection = sortedDict.Keys;
      foreach (string key in keyCollection) {
         Console.WriteLine(key);
      }
      
      Console.WriteLine("\nTotal keys: " + keyCollection.Count);
   }
}

The output of the above code is −

SortedDictionary entries (automatically sorted by key):
Key = Apple, Value = 2
Key = Banana, Value = 4
Key = Mango, Value = 3
Key = Zebra, Value = 1

Keys in alphabetical order:
Apple
Banana
Mango
Zebra

Total keys: 4

Conclusion

The SortedDictionary.Keys property provides a read-only collection of all keys in the dictionary, automatically maintained in sorted order. This property is useful for iterating through keys, checking key existence, or performing operations that require sorted key access without modifying the original dictionary.

Updated on: 2026-03-17T07:04:36+05:30

320 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements