C# | Remove from the specified index of a SortedList - GeeksforGeeks

11 Oct, 2018
SortedList class is a collection of (key, value) pairs which are sorted according to keys. Those pairs can be accessible by key and as well as by index(zero-based indexing). This comes under System.Collections namespace. SortedList.RemoveAt(Int32) method is used to remove the element at the specified index of a SortedList object.
Properties:
A SortedList element can be accessed by its key or by its index.
A SortedList object internally maintains two arrays to store the elements of the list, i.e, one array for the keys and another array for the associated values.
A key cannot be null, but a value can be.
The capacity of a SortedList object is the number of elements the SortedList can hold.
A SortedList does not allow duplicate keys.
Operations on a SortedList object tend to be slower than operations on a Hashtable object because of the sorting.
Elements in this collection can be accessed using an integer index. Indexes in this collection are zero-based.
Syntax:
public virtual void RemoveAt (int index);

Here, index is the zero-based index of the element to remove.
Exceptions:
NotSupportedException : If the SortedList object is read-only or the SortedList has a fixed size.
ArgumentOutOfRangeException : If the index is outside the range of valid indexes for the SortedList object.
Below given are some examples to understand the implementation in a better way:
Example 1:
// C# code to remove the element at// the specified index of a SortedListusing System;using System.Collections;  class GFG {      // Driver code    public static void Main()    {          // Creating an SortedList        SortedList mySortedList = new SortedList();          // Adding elements to SortedList        mySortedList.Add("DS", "Data Structures");        mySortedList.Add("EE", "Electrical Engineering");        mySortedList.Add("CS", "Computer Science");        mySortedList.Add("ME", "Mechanical Engineering");        mySortedList.Add("CE", "Civil Engineering");          // Displaying elements in SortedList        foreach(string mykey in mySortedList.Keys)            Console.WriteLine("Key = " + mykey);          foreach(string myvalue in mySortedList.Values)            Console.WriteLine("Key = " + myvalue);          // Removing element at index 4        Console.WriteLine("Removing element at index 4");          mySortedList.RemoveAt(4);          // Displaying elements in SortedList        foreach(string mykey in mySortedList.Keys)            Console.WriteLine("Key = " + mykey);          foreach(string myvalue in mySortedList.Values)            Console.WriteLine("Key = " + myvalue);    }}
Key = CE
Key = CS
Key = DS
Key = EE
Key = ME
Key = Civil Engineering
Key = Computer Science
Key = Data Structures
Key = Electrical Engineering
Key = Mechanical Engineering
Removing element at index 4
Key = CE
Key = CS
Key = DS
Key = EE
Key = Civil Engineering
Key = Computer Science
Key = Data Structures
Key = Electrical Engineering

Example 2:
// C# code to remove the element at// the specified index of a SortedListusing System;using System.Collections;  class GFG {      // Driver code    public static void Main()    {          // Creating an SortedList        SortedList mySortedList = new SortedList();          // Adding elements to SortedList        mySortedList.Add("DS", "Data Structures");        mySortedList.Add("EE", "Electrical Engineering");        mySortedList.Add("CS", "Computer Science");        mySortedList.Add("ME", "Mechanical Engineering");        mySortedList.Add("CE", "Civil Engineering");          // Displaying elements in SortedList        foreach(string mykey in mySortedList.Keys)            Console.WriteLine("Key = " + mykey);          foreach(string myvalue in mySortedList.Values)            Console.WriteLine("Key = " + myvalue);          // Removing element at index 8        Console.WriteLine("Removing element at index 8");          // It should raise ArgumentOutOfRangeException        // As index is outside the range of valid        // indexes for the SortedList object.        mySortedList.RemoveAt(8);          // Displaying elements in SortedList        foreach(string mykey in mySortedList.Keys)            Console.WriteLine("Key = " + mykey);          foreach(string myvalue in mySortedList.Values)            Console.WriteLine("Key = " + myvalue);    }}
Error:
Unhandled Exception:System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.Parameter name: index
Note:
The index sequence is based on the sort sequence. When an element is added, it is inserted into SortedList in the correct sort order, and the indexing adjusts accordingly. When an element is removed, the indexing also adjusts accordingly. Therefore, the index of a specific key/value pair might change as elements are added or removed from the SortedList object.
This method is an O(n) operation, where n is Count.
Reference:
https://docs.microsoft.com/en-us/dotnet/api/system.collections.sortedlist.removeat?view=netframework-4.7.2
CSharp-Collections-Namespace
CSharp-Collections-SortedList
CSharp-method
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Extension Method in C#
HashSet in C# with Examples
C# | Inheritance
Partial Classes in C#
C# | Generics - Introduction
Top 50 C# Interview Questions & Answers
Switch Statement in C#
C# | How to insert an element in an Array?
Convert String to Character Array in C#
Lambda Expressions in C#