Export (0) Print
Expand All

ArrayList.Insert Method

Inserts an element into the ArrayList at the specified index.

Namespace:  System.Collections
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
Public Overridable Sub Insert ( _
	index As Integer, _
	value As Object _
)

Parameters

index
Type: System.Int32

The zero-based index at which value should be inserted.

value
Type: System.Object

The Object to insert. The value can be Nothing.

Implements

IList.Insert(Int32, Object)

ExceptionCondition
ArgumentOutOfRangeException

index is less than zero.

-or-

index is greater than Count.

NotSupportedException

The ArrayList is read-only.

-or-

The ArrayList has a fixed size.

ArrayList accepts Nothing as a valid value and allows duplicate elements.

If Count already equals Capacity, the capacity of the ArrayList is increased by automatically reallocating the internal array, and the existing elements are copied to the new array before the new element is added.

If index is equal to Count, value is added to the end of ArrayList.

In collections of contiguous elements, such as lists, the elements that follow the insertion point move down to accommodate the new element. If the collection is indexed, the indexes of the elements that are moved are also updated. This behavior does not apply to collections where elements are conceptually grouped into buckets, such as a hash table.

This method is an O(n) operation, where n is Count.

The following code example shows how to insert elements into the ArrayList.

Imports System
Imports System.Collections
Imports Microsoft.VisualBasic

Public Class SamplesArrayList    

    Public Shared Sub Main()

        ' Creates and initializes a new ArrayList using Insert instead of Add. 
        Dim myAL As New ArrayList()
        myAL.Insert(0, "The")
        myAL.Insert(1, "fox")
        myAL.Insert(2, "jumps")
        myAL.Insert(3, "over")
        myAL.Insert(4, "the")
        myAL.Insert(5, "dog")

        ' Creates and initializes a new Queue. 
        Dim myQueue As New Queue()
        myQueue.Enqueue("quick")
        myQueue.Enqueue("brown")

        ' Displays the ArrayList and the Queue.
        Console.WriteLine("The ArrayList initially contains the following:")
        PrintValues(myAL)
        Console.WriteLine("The Queue initially contains the following:")
        PrintValues(myQueue)

        ' Copies the Queue elements to the ArrayList at index 1.
        myAL.InsertRange(1, myQueue)

        ' Displays the ArrayList.
        Console.WriteLine("After adding the Queue, the ArrayList now contains:")
        PrintValues(myAL)

        ' Search for "dog" and add "lazy" before it.
        myAL.Insert(myAL.IndexOf("dog"), "lazy")

        ' Displays the ArrayList.
        Console.WriteLine("After adding ""lazy"", the ArrayList now contains:")
        PrintValues(myAL)

        ' Add "!!!" at the end.
        myAL.Insert(myAL.Count, "!!!")

        ' Displays the ArrayList.
        Console.WriteLine("After adding ""!!!"", the ArrayList now contains:")
        PrintValues(myAL)

        ' Inserting an element beyond Count throws an exception. 
        Try
            myAL.Insert(myAL.Count + 1, "anystring")
        Catch myException As Exception
            Console.WriteLine("Exception: " + myException.ToString())
        End Try 
    End Sub     

    Public Shared Sub PrintValues(myList As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myList
            Console.Write("   {0}", obj)
        Next obj
        Console.WriteLine()
    End Sub 'PrintValues

End Class 

' This code produces the following output. 
'  
' The ArrayList initially contains the following: 
'     The    fox    jumps    over    the    dog 
' The Queue initially contains the following: 
'     quick    brown 
' After adding the Queue, the ArrayList now contains: 
'     The    quick    brown    fox    jumps    over    the    dog 
' After adding "lazy", the ArrayList now contains: 
'     The    quick    brown    fox    jumps    over    the    lazy    dog 
' After adding "!!!", the ArrayList now contains: 
'     The    quick    brown    fox    jumps    over    the    lazy    dog    !!! 
' Exception: System.ArgumentOutOfRangeException: Insertion index was out of range.  Must be non-negative and less than or equal to size. 
' Parameter name: index 
'    at System.Collections.ArrayList.Insert(Int32 index, Object value) 
'    at SamplesArrayList.Main()

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft