List<T>.InsertRange(Int32, IEnumerable<T>) Method is used to insert the elements of a collection into the List<T> at the specified index.
Properties of List:
- It is different from the arrays. A list can be resized dynamically but arrays cannot.
- List class can accept null as a valid value for reference types and it also allows duplicate elements.
- If the Count becomes equals to Capacity then the capacity of the List increases automatically by reallocating the internal array. The existing elements will be copied to the new array before the addition of the new element.
Syntax:
public void InsertRange (int index, System.Collections.Generic.IEnumerable<T> collection);
Parameter:
index: It is the zero-based index at which the new elements should be inserted.
collection: It is the collection whose elements will be inserted into the List<T>
Note: The collection itself cannot be null. But it can contain elements which can be null if the type T is a reference type.
Exceptions:
- ArgumentNullException: If the collection is null.
- ArgumentOutOfRangeException: If the index is less than zero or greater than count.
Below programs illustrate the use of above discussed method:
Example 1:
using System;
using System.Collections;
using System.Collections.Generic;
class Geeks {
public static void Main(String[] args)
{
string [] str1 = { "Geeks" ,
"for" ,
"Geeks" };
List<String> firstlist = new List<String>(str1);
Console.WriteLine( "Elements in List: \n" );
foreach ( string dis in firstlist)
{
Console.WriteLine(dis);
}
Console.WriteLine( " " );
str1 = new string [] { "New" ,
"Element" ,
"Added" };
Console.WriteLine( "InsertRange(2, str1)\n" );
firstlist.InsertRange(2, str1);
foreach ( string res in firstlist)
{
Console.WriteLine(res);
}
}
}
|
Output:
Elements in List:
Geeks
for
Geeks
InsertRange(2, str1)
Geeks
for
New
Element
Added
Geeks
Example 2:
using System;
using System.Collections;
using System.Collections.Generic;
class Geeks {
public static void Main(String[] args)
{
string [] str1 = { "Geeks" ,
"for" ,
"Geeks" };
List<String> firstlist = new List<String>(str1);
Console.WriteLine( "Elements in List: \n" );
foreach ( string dis in firstlist)
{
Console.WriteLine(dis);
}
Console.WriteLine( " " );
str1 = new string [] { "New" ,
"Element" ,
"Added" };
Console.WriteLine( "InsertRange(2, str1)\n" );
firstlist.InsertRange(-1, str1);
foreach ( string res in firstlist)
{
Console.WriteLine(res);
}
}
}
|
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
Reference: