List<T>.AddRange(IEnumerable<T>) Método

Definição

Adiciona os elementos da coleção especificada ao final do List<T>.

public void AddRange (System.Collections.Generic.IEnumerable<T> collection);

Parâmetros

collection
IEnumerable<T>

A coleção cujos elementos devem ser adicionados ao final do 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.

Exemplos

O exemplo a seguir demonstra o AddRange método e vários outros métodos da List<T> classe que atuam em intervalos. Uma matriz de cadeias de caracteres é criada e passada para o construtor, preenchendo a lista com os elementos da matriz. O AddRange método é chamado, com a lista como seu argumento. O resultado é que os elementos atuais da lista são adicionados ao final da lista, duplicando todos os elementos.

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

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

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 serão copiados para a nova matriz antes que os novos elementos sejam adicionados.

Se o List<T> puder acomodar os novos elementos sem aumentar o Capacity, esse método será uma operação O(n), em que n é o número de elementos a serem adicionados. Se a capacidade precisar ser aumentada para acomodar os novos elementos, esse método se tornará 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