Getting index of the specified value in a SortedList object in C#

To get the index of a specified value in a SortedList object, C# provides the IndexOfValue() method. This method searches for the first occurrence of the specified value and returns its zero-based index position.

Syntax

Following is the syntax for the IndexOfValue() method −

public virtual int IndexOfValue(object value);

Parameters

  • value − The value to locate in the SortedList. The value can be null.

Return Value

The method returns an integer representing the zero-based index of the first occurrence of the value. If the value is not found, it returns -1.

Using IndexOfValue() with Integer Values

The following example demonstrates finding the index of integer values in a SortedList −

using System;
using System.Collections;

public class Demo {
    public static void Main(String[] args) {
        SortedList list1 = new SortedList();
        list1.Add("One", 1);
        list1.Add("Two", 2);
        list1.Add("Three", 3);
        list1.Add("Four", 4);
        list1.Add("Five", 5);
        list1.Add("Six", 6);
        list1.Add("Seven", 7);
        list1.Add("Eight", 8);
        list1.Add("Nine", 9);
        list1.Add("Ten", 10);
        
        Console.WriteLine("SortedList1 elements...");
        foreach(DictionaryEntry d in list1) {
            Console.WriteLine(d.Key + " " + d.Value);
        }
        Console.WriteLine("Index at value 7 = " + list1.IndexOfValue(7));
        Console.WriteLine("Index at value 1 = " + list1.IndexOfValue(1));
    }
}

The output of the above code is −

SortedList1 elements...
Eight 8
Five 5
Four 4
Nine 9
One 1
Seven 7
Six 6
Ten 10
Three 3
Two 2
Index at value 7 = 5
Index at value 1 = 4

Using IndexOfValue() with String Values

The following example shows how to find the index of string values in a SortedList −

using System;
using System.Collections;

public class Demo {
    public static void Main(String[] args) {
        SortedList list = new SortedList();
        list.Add("One", "Finance");
        list.Add("Two", "Marketing");
        list.Add("Three", "Sales");
        list.Add("Four", "Purchase");
        list.Add("Five", "Operations");
        list.Add("Six", "IT");
        
        Console.WriteLine("SortedList elements...");
        foreach(DictionaryEntry d in list) {
            Console.WriteLine(d.Key + " " + d.Value);
        }
        
        Console.WriteLine("\nIndex at value Marketing = " + list.IndexOfValue("Marketing"));
        Console.WriteLine("Index at value Purchase = " + list.IndexOfValue("Purchase"));
        Console.WriteLine("Index at value Sales = " + list.IndexOfValue("Sales"));
        Console.WriteLine("Index at value IT = " + list.IndexOfValue("IT"));
        Console.WriteLine("Index at value Operations = " + list.IndexOfValue("Operations"));
        Console.WriteLine("Index at value NonExistent = " + list.IndexOfValue("NonExistent"));
    }
}

The output of the above code is −

SortedList elements...
Five Operations
Four Purchase
One Finance
Six IT
Three Sales
Two Marketing
Index at value Marketing = 5
Index at value Purchase = 1
Index at value Sales = 4
Index at value IT = 3
Index at value Operations = 0
Index at value NonExistent = -1

How It Works

The IndexOfValue() method performs a linear search through the values in the SortedList. Since SortedList maintains elements sorted by keys (not values), the search operation has O(n) time complexity where n is the number of elements.

SortedList IndexOfValue() Process Five:5 Four:4 One:1 Six:6 Ten:10 Index 0 Index 1 Index 2 Index 3 Index 4 Searching for value: 1 Found at index: 2

Conclusion

The IndexOfValue() method in SortedList provides an efficient way to find the index position of any value. It returns the zero-based index of the first occurrence or -1 if the value is not found, making it useful for locating and manipulating specific values within the collection.

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

156 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements