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

Definição

Cria uma cópia superficial de um intervalo de elementos no List<T> de origem.

C#
public System.Collections.Generic.List<T> GetRange (int index, int count);

Parâmetros

index
Int32

O índice List<T> baseado em zero no qual é iniciado o intervalo.

count
Int32

O número de elementos no intervalo.

Retornos

Uma cópia superficial de um intervalo de elementos no List<T> de origem.

Exceções

index é menor que 0.

- ou -

count é menor que 0.

index e count não denotam um intervalo válido de elementos no List<T>.

Exemplos

O exemplo a seguir demonstra o GetRange método e outros métodos da List<T> classe que atuam em intervalos. No final do exemplo, o GetRange método é usado para obter três itens da lista, começando com o local do índice 2. O ToArray método é chamado no resultante List<T>, criando uma matriz de três elementos. Os elementos da matriz são exibidos.

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

Uma cópia superficial de uma coleção de tipos de referência ou um subconjunto dessa coleção contém apenas as referências aos elementos da coleção. Os objetos em si não são copiados. As referências na nova lista apontam para os mesmos objetos que as referências na lista original.

Uma cópia superficial de uma coleção de tipos de valor ou um subconjunto dessa coleção contém os elementos da coleção. No entanto, se os elementos da coleção contiverem referências a outros objetos, esses objetos não serão copiados. As referências nos elementos da nova coleção apontam para os mesmos objetos que as referências nos elementos da coleção original.

Por outro lado, uma cópia profunda de uma coleção copia os elementos e tudo o que é referenciado direta ou indiretamente pelos elementos.

Esse método é uma operação O(n), em que n é 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