c# - How to get an element index in ArrayList by the starting index

Get an element index from ArrayList by specified starting index
The ArrayList class implements the IList interface using an array whose size is dynamically increased as required. It is designed to hold heterogeneous collections of objects. ArrayList is not guaranteed to be sorted. The ArrayList capacity is the number of elements it can hold. Its capacity is automatically increased while adding elements. ArrayList elements can be accessed by index and it is zero-based. The ArrayList accepts null as a valid value and also allows duplicate elements.

The following .net c# tutorial code demonstrates how we can get the index of an element in an ArrayList instance by using the starting index. That means we will find the specified element within ArrayList from the specified index position. Here we will use the ArrayList class IndexOf() method to get the index of an element in an ArrayList object. We only take the index of the element’s first occurrence within an ArrayList from the specified index position.

The ArrayList IndexOf() method returns the zero-based index of the first occurrence of a value in the ArrayList or in a portion of it. The ArrayList IndexOf(Object, Int32) method overload searches for the specified Object and returns the zero-based index of the first occurrence within the range of elements in the ArrayList that extends from the specified index to the last element.

The ArrayList IndexOf(object? value, int startIndex) method overload has two parameters those are value and startIndex. The value parameter is the Object to locate in the ArrayList. The value can be null. And the startIndex parameter is the zero-based starting index of the search. 0 (zero) is valid in an empty list.

The ArrayList IndexOf(object? value, int startIndex) method returns the zero-based index of the first occurrence of value within the range of elements in the ArrayList that extends from startIndex to the last element if found otherwise it returns -1.

The ArrayList IndexOf(object? value, int startIndex) method throws ArgumentOutOfRangeException if the startIndex is outside the range of valid indexes for the ArrayList. The ArrayList is searched forward starting at startIndex and ending at the last element.
ArrayListIndexOfMethodWithStartIndex.aspx

<%@ Page Language="C#" AutoEventWireup="true" %>

<!DOCTYPE html>

<script runat="server">
    protected void Button1_Click(object sender, System.EventArgs e)
    {
        ArrayList colors = new ArrayList() {"Green","Blue","Red","Peru","Blue","Salmon"};

        Label1.Text = "ArrayList Elements....";
        Label1.Text += "<font color=DarkOrange>";
        foreach (string color in colors)
        {
            Label1.Text += "<br />" + color;
        }
        Label1.Text += "</font>";

        Label1.Text += "<br /><br />IndexOf(object Blue, startIndex 2)";
        Label1.Text += "<font color=DarkGreen>";
        Label1.Text += "<br />Index of 'Blue': " + colors.IndexOf("Blue", 2);
        Label1.Text += "</font>";
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>How to search specified Object, get zero-based index of first occurrence within the range of elements in ArrayList</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h2 style="color:MidnightBlue; font-style:italic;">
            System.Collections.ArrayList IndexOf(Object, Int32) Method
            <br /> How to search specified Object, get zero-based index
            <br /> of first occurrence within the range of elements in ArrayList
        </h2>
        <hr width="575" align="left" color="Navy" />
        <br />
        <asp:Label
             ID="Label1"
             runat="server"
             ForeColor="DarkOrchid"
             Font-Size="Large"
             Font-Names="Courier New"
             Font-Italic="true"
             Font-Bold="true"
             >
        </asp:Label>
        <br /><br />
        <asp:Button 
            ID="Button1"
            runat="server"
            OnClick="Button1_Click"
            Text="Test ArrayList IndexOf(Object, Int32) Method"
            Height="45"
            Font-Bold="true"
            ForeColor="DodgerBlue"
            />
    </div>
    </form>
</body>
</html>