C# | Cómo insertar los elementos de una colección en la Lista en el índice especificado

El método List<T>.InsertRange(Int32, IEnumerable<T>) se usa para insertar los elementos de una colección en List<T> en el índice especificado.

Propiedades de la lista:

  • Es diferente de las arrays. Una lista se puede cambiar de tamaño dinámicamente, pero las arrays no.
  • La clase de lista puede aceptar nulo como un valor válido para los tipos de referencia y también permite elementos duplicados.
  • Si el recuento se vuelve igual a la capacidad, la capacidad de la lista aumenta automáticamente al reasignar la array interna. Los elementos existentes se copiarán en la nueva array antes de agregar el nuevo elemento.

Sintaxis:

public void InsertRange (int index, System.Collections.Generic.IEnumerable<T> collection);

Parámetro:

índice: Es el índice de base cero en el que se deben insertar los nuevos elementos.

colección: Es la colección cuyos elementos se insertarán en la Lista<T>

Nota: La colección en sí no puede ser nula. Pero puede contener elementos que pueden ser nulos si el tipo T es un tipo de referencia.

Excepciones:

  • ArgumentNullException: si la colección es nula.
  • ArgumentOutOfRangeException: si el índice es menor que cero o mayor que contar.

Los siguientes programas ilustran el uso del método discutido anteriormente:

Ejemplo 1:

// C# Program to insert the elements of
// a collection into the List<T> at the
// specified index
using System;
using System.Collections;
using System.Collections.Generic;
  
class Geeks {
  
    // Main Method
    public static void Main(String[] args)
    {
  
        string[] str1 = { "Geeks",
                          "for",
                          "Geeks" };
  
        // Creating an List<T> of strings
        // adding str1 elements to List
        List<String> firstlist = new List<String>(str1);
  
        // displaying the elements of firstlist
        Console.WriteLine("Elements in List: \n");
  
        foreach(string dis in firstlist)
        {
            Console.WriteLine(dis);
        }
  
        Console.WriteLine(" ");
  
        // contains new Elements which is
        // to be added in the List
        str1 = new string[] { "New",
                              "Element",
                              "Added" };
  
        // using InsertRange Method
        Console.WriteLine("InsertRange(2, str1)\n");
  
        // adding elements after 2nd
        // index of the List
        firstlist.InsertRange(2, str1);
  
        // displaying the elements of
        // List after InsertRange Method
        foreach(string res in firstlist)
        {
            Console.WriteLine(res);
        }
    }
}

Producción:

Elements in List: 

Geeks
for
Geeks
 
InsertRange(2, str1)

Geeks
for
New
Element
Added
Geeks

Ejemplo 2:

// C# Program to insert the elements of
// a collection into the List<T> at the
// specified index
using System;
using System.Collections;
using System.Collections.Generic;
  
class Geeks {
  
    // Main Method
    public static void Main(String[] args)
    {
  
        string[] str1 = { "Geeks",
                          "for",
                          "Geeks" };
  
        // Creating an List<T> of strings
        // adding str1 elements to List
        List<String> firstlist = new List<String>(str1);
  
        // displaying the elements of firstlist
        Console.WriteLine("Elements in List: \n");
  
        foreach(string dis in firstlist)
        {
            Console.WriteLine(dis);
        }
  
        Console.WriteLine(" ");
  
        // contains new Elements which is
        // to be added in the List
        str1 = new string[] { "New",
                              "Element",
                              "Added" };
  
        // using InsertRange Method
        Console.WriteLine("InsertRange(2, str1)\n");
  
        // this will give error as
        // index is less than 0
        firstlist.InsertRange(-1, str1);
  
        // displaying the elements of
        // List after InsertRange Method
        foreach(string res in firstlist)
        {
            Console.WriteLine(res);
        }
    }
}

Error:

Excepción no controlada:
System.ArgumentOutOfRangeException: el índice estaba fuera de rango. Debe ser no negativo y menor que el tamaño de la colección.
Nombre del parámetro: índice

Referencia:

Publicación traducida automáticamente

Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *