Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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 entryValue− Gets the value of the current dictionary entryEntry− Gets both the key and value as a DictionaryEntry
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.
