C# | How to add key/value pairs in SortedList - GeeksforGeeks

31 Oct, 2019
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.Add(Object, Object) Method is used to add an element with the specified key and value to a SortedList object.
Properties of SortedList:
Internally the object of SortedList maintain the two arrays. First array is used to store the elements of the list i.e. keys and the second one is used to store the associated values.
A key cannot be null but value can be.
As SortedList used sorting which makes it slower in compare to Hashtable.
The capacity of a SortedList can be dynamically increased through reallocation.
The keys in the SortedList cannot be duplicated but values can be.
The SortedList can be sorted according to the keys using the IComparer(Either in ascending or descending order).
Syntax:
public virtual void Add (object key, object value);

Parameters:
key: It is the key of the element which is to be added.
value: It is the value of the element which is to be added. The value can be null.
Exceptions:
ArgumentNullException: If the key is null.
ArgumentException: If the element with the specified key is already exists in the SortedList object or SortedList is set to use the IComparable interface and the key does not implement the IComparable interface.
NotSupportedException: If the SortedList is read-only or has a fixed size.
OutOfMemoryException: If there is not enough available memory in the system to add the pairs to the SortedList.
InvalidOperationException: If the comparer throws an exception.
Below programs illustrate the use of above discussed method:
Example 1:
// C# program to illustrate how to add key/value// pair in SortedListusing System;using System.Collections;  class Geeks {      // Main Method    public static void Main(String[] args)    {          // Creating a sorted list of key/value pairs        SortedList fslist = new SortedList();          // Adding pairs to fslist        fslist.Add("Maths    ", 98);        fslist.Add("English  ", 99);        fslist.Add("Physics  ", 97);        fslist.Add("Chemistry", 96);        fslist.Add("CSE      ", 100);          // Displays the marks in different        // subjects sorted according to keys        // i.e subjects        // Here Count property is used to count        // the total number of pairs in SortedList        for (int i = 0; i < fslist.Count; i++) {            Console.WriteLine("{0}:\t{1}", fslist.GetKey(i),                                      fslist.GetByIndex(i));        }    }}
Output:
Chemistry:    96
CSE      :    100
English  :    99
Maths    :    98
Physics  :    97

Example 2:
// C# program to illustrate how to add// key/value pair in SortedListusing System;using System.Collections;  class Geeks {      // Main Method    public static void Main(String[] args)    {          // Creating a sorted list of key/value pairs        SortedList fslist = new SortedList();          // Adding pairs to fslist        fslist.Add("Maths    ", 98);        fslist.Add("English  ", 99);        fslist.Add("Physics  ", 97);        fslist.Add("Chemistry", 96);          // this will give error as we are        // adding duplicate key i.e Chemistry        fslist.Add("Chemistry", 100);    }}
Error:
Unhandled Exception:System.ArgumentException: Item has already been added. Key in dictionary: ‘Chemistry’ Key being added: ‘Chemistry’at System.Collections.SortedList.Add (System.Object key, System.Object value) in :0at Geeks.Main (System.String[] args) in :0
Reference:
https://docs.microsoft.com/en-us/dotnet/api/system.collections.sortedlist.add?view=netframework-4.7.2
Akanksha_Rai
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.
Comments
Old Comments
C# | Class and Object
C# | Method Overriding
Lambda Expressions in C#
HashSet in C# with Examples
C# | How to use strings in switch statement
C# | Replace() Method
C# Dictionary with examples
C# | String.Contains() Method
Collections in C#
C# | Abstract Classes