List<T>.InsertRange(Int32, IEnumerable<T>) Método

Definição

Insere os elementos de uma coleção no List<T> no índice especificado.

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

Parâmetros

index
Int32

O índice baseado em zero no qual os novos elementos devem ser inseridos.

collection
IEnumerable<T>

A coleção cujos elementos devem ser inseridos no List<T>. A coleção em si não pode ser null, mas pode conter elementos que são null, se o tipo T é um tipo de referência.

Exceções

collection é null.

index é menor que 0.

- ou -

index é maior que Count.

Exemplos

O exemplo a seguir demonstra InsertRange o método e vários outros métodos da List<T> classe que atuam em intervalos. Depois que a lista é criada e populada com os nomes de vários dinossauros comedores pacíficos de plantas, o InsertRange método é usado para inserir uma matriz de três ferozes dinossauros comedores de carne na lista, começando no local do índice 3.

C#
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        string[] input = { "Brachiosaurus",
                           "Amargasaurus",
                           "Mamenchisaurus" };

        List<string> dinosaurs = new List<string>(input);

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nAddRange(dinosaurs)");
        dinosaurs.AddRange(dinosaurs);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nRemoveRange(2, 2)");
        dinosaurs.RemoveRange(2, 2);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        input = new string[] { "Tyrannosaurus",
                               "Deinonychus",
                               "Velociraptor"};

        Console.WriteLine("\nInsertRange(3, input)");
        dinosaurs.InsertRange(3, input);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\noutput = dinosaurs.GetRange(2, 3).ToArray()");
        string[] output = dinosaurs.GetRange(2, 3).ToArray();

        Console.WriteLine();
        foreach( string dinosaur in output )
        {
            Console.WriteLine(dinosaur);
        }
    }
}

/* This code example produces the following output:

Capacity: 3

Brachiosaurus
Amargasaurus
Mamenchisaurus

AddRange(dinosaurs)

Brachiosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Amargasaurus
Mamenchisaurus

RemoveRange(2, 2)

Brachiosaurus
Amargasaurus
Amargasaurus
Mamenchisaurus

InsertRange(3, input)

Brachiosaurus
Amargasaurus
Amargasaurus
Tyrannosaurus
Deinonychus
Velociraptor
Mamenchisaurus

output = dinosaurs.GetRange(2, 3).ToArray()

Amargasaurus
Tyrannosaurus
Deinonychus
 */

Comentários

List<T> null aceita como um valor válido para tipos de referência e permite elementos duplicados.

Se o novo Count (o atual Count mais o tamanho da coleção) for maior que Capacity, a capacidade do List<T> será aumentada realocando automaticamente a matriz interna para acomodar os novos elementos e os elementos existentes forem copiados para a nova matriz antes que os novos elementos sejam adicionados.

Se index for igual a Count, os elementos serão adicionados ao final de List<T>.

A ordem dos elementos na coleção é preservada no List<T>.

Esse método é uma operação O(n * m), em que n é o número de elementos a serem adicionados e m é Count.

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Confira também