A SortedList
is a non-generic collection that contains key/value pairs where keys are sorted in an order. For example,
using System;
using System.Collections;
class Program
{
public static void Main()
{
// create a SortedList
SortedList myList = new SortedList();
myList.Add(2, "Python");
myList.Add(1, "Java");
myList.Add(3, "C");
// iterate through myList
for (int i = 0; i < myList.Count; i++)
{
Console.WriteLine("{0} : {1} ", myList.GetKey(i),
myList.GetByIndex(i));
}
}
}
Output
1 : Java 2 : Python 3 : C
Here, myList
is a SortedList
that contains key/value pairs.
We will learn about SortedList
in detail.
Create an SortedList
To create SortedList
in C#, we need to use the System.Collections
namespace. Here is how we can create SortedList
:
// create a sorted list
SortedList myList = new SortedList();
Here, we have created a SortedList
named myList
.
Basic Operations on SortedList
In C#, we can perform different operations on sortedlist. We will look at some commonly used SortedList
operations in this tutorial:
- Add Elements
- Access Elements
- Change Elements
- Remove Elements
Let's see how we can perform these operations in detail!
Add Elements in SortedList
C# provides a method Add()
using which we can add elements in SortedList
. For example,
using System;
using System.Collections;
class Program
{
public static void Main()
{
// create a SortedList and add items
SortedList person = new SortedList();
person.Add(2, 45);
person.Add(1, "Jack");
person.Add(3, "Florida");
}
}
In the above example, we have created a SortedList
named person
.
Then we added three values, one integer type(45) and two string type ("Jack"
and "Florida"
) along with their keys(2, 1 and 3).
Access the SortedList
We can access the elements inside the SortedList
using it's keys. For example,
using System;
using System.Collections;
class Program
{
public static void Main()
{
SortedList myList = new SortedList();
myList.Add(2, "Python");
myList.Add(1, "Java");
myList.Add(3, "C");
// access the element whose key is 2
Console.WriteLine("Element whose key is 2: " + myList[2]);
// access the element whose key is 1
Console.WriteLine("Element whose key is 1: " + myList[1]);
}
}
Output
Element whose key is 2: Python Element whose key is 1: Java
In the above example, we have accessed the elements using their keys:
myList[2]
- accesses the element whose key is 2myList[1]
- accesses the element whose key is 1
Note: While accessing, if we pass the key which does not exist, the compiler throws an error.
Iterate through SortedList
In C#, we can also loop through each element of SortedList
using a for
loop. For example,
using System;
using System.Collections;
class Program
{
public static void Main()
{
SortedList myList = new SortedList();
myList.Add(2, "BMW");
myList.Add(1, 96);
myList.Add(3, "Pizza");
// iterate through myList
for (int i = 0; i < myList.Count; i++)
{
Console.WriteLine("{0} : {1} ", myList.GetKey(i),
myList.GetByIndex(i));
}
}
}
Output
1 : 96 2 : BMW 3 : Pizza
In the above example, we have used a for loop to iterate through myList
.
In order to get the keys and values of the SortedList
, we use the GetKey()
and GetByIndex()
methods respectively.
Since the SortedList
arranges the keys in ascending order, the output the keys are sorted.
Note: The Count property counts the total number of elements inside the list.
Remove SortedList Elements
We can delete one or more items from SortedList
using 2 methods:
Remove(key)
- removes the element according to the specified keyRemoveAt(index)
- removes the element according to the specified index
Let's see examples using both methods.
Example: Remove() Method
using System;
using System.Collections;
class Program {
public static void Main() {
SortedList myList = new SortedList();
myList.Add(2, "Evermore");
myList.Add(1, "Reputation");
myList.Add(3, "Folklore");
// remove element whose key is 1 i.e "Reputation"
myList.Remove(1);
// iterating through the modified SortedList
for (int i =0; i< myList.Count; i++) {
Console.WriteLine("{0} : {1} ", myList.GetKey(i),
myList.GetByIndex(i));
}
}
}
Output
2 : Evermore 3 : Folklore
In the above example, we have removed the element whose key is 1.
Here, myList.Remove(1)
removes "Reputation"
from myList
. So when we iterate through myList
we get a modified list as an output.
Example: RemoveAt() Method
using System;
using System.Collections;
class Program {
public static void Main() {
SortedList myList = new SortedList();
myList.Add(2, "Evermore");
myList.Add(1, "Reputation");
myList.Add(3, "Folklore");
// remove element which is present in index 1 i.e "Evermore"
myList.RemoveAt(1);
// iterating through the modified SortedList
for (int i =0; i< myList.Count; i++) {
Console.WriteLine("{0} : {1} ", myList.GetKey(i),
myList.GetByIndex(i));
}
}
}
Output
1 : Reputation 3 : Folklore