Get an enumerator that iterates through the SortedList in C#

The SortedList class in C# provides the GetEnumerator() method to retrieve an enumerator that iterates through key-value pairs. This method returns an IDictionaryEnumerator object that allows sequential access to each element in the sorted collection.

Syntax

Following is the syntax for getting an enumerator from a SortedList −

IDictionaryEnumerator enumerator = sortedList.GetEnumerator();

Following is the syntax for iterating using the enumerator −

while (enumerator.MoveNext()) {
   Console.WriteLine("Key = " + enumerator.Key + ", Value = " + enumerator.Value);
}

Return Value

The GetEnumerator() method returns an IDictionaryEnumerator object for the SortedList. This enumerator provides three important properties −

  • Key − Gets the key of the current dictionary entry

  • Value − Gets the value of the current dictionary entry

  • Entry − Gets both the key and value as a DictionaryEntry

SortedList Enumeration Process SortedList {A:1, B:2, C:3} IDictionaryEnumerator Key, Value, Entry GetEnumerator() MoveNext() Key Value Iterate through each key-value pair sequentially

Using GetEnumerator() with Alphabetic Keys

Example

using System;
using System.Collections;

public class Demo {
   public static void Main(String[] args) {
      SortedList sortedList = new SortedList();
      sortedList.Add("A", "1");
      sortedList.Add("B", "2");
      sortedList.Add("C", "3");
      sortedList.Add("D", "4");
      sortedList.Add("E", "5");
      sortedList.Add("F", "6");
      sortedList.Add("G", "7");
      sortedList.Add("H", "8");
      sortedList.Add("I", "9");
      sortedList.Add("J", "10");
      
      Console.WriteLine("SortedList elements...");
      foreach(DictionaryEntry d in sortedList) {
         Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
      }
      Console.WriteLine("Count of SortedList key-value pairs = " + sortedList.Count);
      Console.WriteLine("\nEnumerator to iterate through the SortedList...");
      
      IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
      while (demoEnum.MoveNext())
         Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
   }
}

The output of the above code is −

SortedList elements...
Key = A, Value = 1
Key = B, Value = 2
Key = C, Value = 3
Key = D, Value = 4
Key = E, Value = 5
Key = F, Value = 6
Key = G, Value = 7
Key = H, Value = 8
Key = I, Value = 9
Key = J, Value = 10
Count of SortedList key-value pairs = 10

Enumerator to iterate through the SortedList...
Key = A, Value = 1
Key = B, Value = 2
Key = C, Value = 3
Key = D, Value = 4
Key = E, Value = 5
Key = F, Value = 6
Key = G, Value = 7
Key = H, Value = 8
Key = I, Value = 9
Key = J, Value = 10

Using GetEnumerator() with Word Keys

Example

using System;
using System.Collections;

public class Demo {
   public static void Main(String[] args) {
      SortedList sortedList = new SortedList();
      sortedList.Add("One", "1");
      sortedList.Add("Two", "2");
      sortedList.Add("Three", "3");
      sortedList.Add("Four", "4");
      sortedList.Add("Five", "5");
      sortedList.Add("Six", "6");
      sortedList.Add("Seven", "7");
      sortedList.Add("Eight", "8");
      sortedList.Add("Nine", "9");
      sortedList.Add("Ten", "10");
      
      Console.WriteLine("Enumerator to iterate through the SortedList...");
      IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
      while (demoEnum.MoveNext())
         Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
   }
}

The output of the above code is −

Enumerator to iterate through the SortedList...
Key = Eight, Value = 8
Key = Five, Value = 5
Key = Four, Value = 4
Key = Nine, Value = 9
Key = One, Value = 1
Key = Seven, Value = 7
Key = Six, Value = 6
Key = Ten, Value = 10
Key = Three, Value = 3
Key = Two, Value = 2

Comparison: foreach vs GetEnumerator()

foreach Loop GetEnumerator()
Simpler syntax, automatic iteration More control over iteration process
Returns DictionaryEntry objects Provides direct access to Key and Value
Cannot pause or control iteration Can pause, resume, or skip elements

Conclusion

The GetEnumerator() method provides manual control over SortedList iteration by returning an IDictionaryEnumerator. This approach is useful when you need fine-grained control over the enumeration process, while foreach offers a simpler alternative for standard iterations.

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

511 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements