C# - Listas : Como inserir, remover e encontrar itens pelo índice
 Hoje veremos como inserir, remover e encontrar itens em uma lista usando o índice na  linguagem C#


A classe List<T> representa uma lista de objetos fortemente tipados e fornece a funcionalidade para criar uma lista de objetos, localizar itens de lista, classificar lista, pesquisar lista e manipular itens de lista.
 


 

A classe List<T> é uma classe genérica definida no namespace System.Collections.Generic  e seu construtor  é usado para criar um objeto List do tipo T. Ele pode estar vazio ou receber um valor Integer como um argumento que define o tamanho inicial da lista, também conhecido como capacidade.

 

Se não houver um inteiro passado no construtor, o tamanho da lista será dinâmico e aumentará toda vez que um item for adicionado ao array. Você também pode passar uma coleção inicial de elementos ao inicializar um objeto.

O trecho de código a seguir cria uma Lista de tipos Int16 , uma lista de tipos de string com tamanho fixo e  um objeto List<T> com uma coleção existente :

 

 

A seguir vamos realizar as seguintes operações usando a classe List<T>:

Vamos iniciar ...

 

Inserir itens na lista usando um índice

 

Vamos criar uma lista inicial contendo o nome de algumas galáxias do nosso universo e a seguir vamos exibir os nomes das galáxias.
 

A seguir vamos usar o método Insert da classe List para incluir 5 novas galáxias a partir do índice 5 até o 9 e vamos exibir a nova lista e o seu total de elementos usando o método Count.

 

Console.WriteLine("Algumas galáxias do nosso universo...\n");

List<string> galaxias = new List<string>() {
         "Via Láctea", "Andrômeda","Olho Negro","Sombrero","Charuto",
         "Rodamoinho", "Cata-Vento","Triângulo","Compasso"
      };

foreach (var i in galaxias)
{
    Console.WriteLine(i + " ");
}
Console.WriteLine($"\nNo de galáxias : {galaxias.Count}");

Console.WriteLine("\nInserindo o elemento nos indíces 5,6,7,8 e 9");

Console.WriteLine("\nPressione algo para iniciar...");
Console.ReadLine();

galaxias.Insert(5, "Bode");
Console.Write("\nInserindo Bode no índice 5");
galaxias.Insert(6, "Cometa");
Console.Write("\nInserindo Cometa no índice 6");
galaxias.Insert(7, "CartWheel");
Console.Write("\nInserindo CartWheel no índice 7");
galaxias.Insert(8, "Girassol");
Console.Write("\nInserindo Girassol no índice 8");
galaxias.Insert(9, "Girino");
Console.Write("\nInserindo Girino no índice 9\n");

foreach (var i in galaxias)
{
    Console.Write($"{i} ");
}

Console.WriteLine($"\nNo de galáxias : {galaxias.Count}");

Console.ReadLine();

 

Resultado:

Obter o índice de um elemento da lista

 

Vamos criar uma lista inicial contendo o nome de algumas galáxias do nosso universo e a seguir vamos exibir os nomes das galáxias.
 

A seguir vamos solicitar a informação do nome de uma galáxia da lista.

 

Depois vamos localizar a galáxia da lista usando o método Contains e o nome informado.

 

Concluindo vamos usar o método FindIndex para obter o índice do elemento encontrado. Este método

retorna o índice da primeira ocorrência do elemento especificado que corresponde às condições definidas por um predicado especificado e método retorna -1 se um item que corresponde às condições não for encontrado.

 

Console.WriteLine("Algumas galáxias do nosso universo...\n");

List<string> galaxias = new List<string>() {
         "Via Láctea", "Andrômeda","Olho Negro","Sombrero","Charuto",
         "Bode", "Cometa","CartWheel","Girassol","Girino",
         "Rodamoinho", "Cata-Vento","Triângulo","Compasso"
      };

foreach(var item in galaxias)
{
    Console.WriteLine(item);
}

Console.WriteLine("\n\nInforme o nome da galáxia para obter o índice");
var nome = Console.ReadLine();

// encontrando o indice
int index = galaxias.FindIndex(a => a.Contains(nome));

// exibindo o indice
Console.WriteLine($"\nO indice da lista encontrado para {nome} é igual a = " + index);

Console.ReadLine();

 

 

Uma outra opção é usar o método IndexOf() que retorna o índice da primeira ocorrência do elemento especificado nesta lista, ou -1 se não houver tal elemento.

 

Uma outra opção , sem usar o índice da lista, seria usar o método Enumerable.Select para projetar sobre uma sequência de valores e usar o valor e o índice de cada elemento para encontrar o índice da primeira ocorrência do elemento especificado nesta lista.

 

Localizar um item na lista pelo seu índice

 

Vamos criar uma lista inicial contendo o nome de algumas galáxias do nosso universo e a seguir vamos exibir os nomes das galáxias.

 

Depois vamos solicitar o índice da lista e usando o método ElementAt(indice) vamos retornar o nome da galáxia para este índice:
 

Console.WriteLine("Algumas galáxias do nosso universo...\n");

List<string> galaxias = new List<string>() {
         "Via Láctea", "Andrômeda","Olho Negro","Sombrero","Charuto",
         "Bode", "Cometa","CartWheel","Girassol","Girino",
         "Rodamoinho", "Cata-Vento","Triângulo","Compasso"
      };

foreach (var item in galaxias)
{
    Console.Write(item + ", ");
}

Console.WriteLine("\n\nInforme o índice para localizar a galáxia");

var indice = Convert.ToInt32(Console.ReadLine());

Console.WriteLine($"\nPara o índice {indice} a galáxia é : {galaxias.ElementAt(indice)}");

Console.ReadLine();

 

Resultado:


 

Vimos assim de forma prática como usar os métodos da classe List<T> para realizar algumas operações básicas.

 

Pegue o código aqui:   CSharp_List.zip
 

"Mas se não derdes ouvidos à voz do Senhor, e antes fordes rebeldes ao mandado do Senhor, a mão do Senhor será contra vós, como o era contra vossos pais."
1 Samuel 12:15

Porque um menino nos nasceu, um filho se nos deu, e o principado está sobre os seus ombros, e se chamará o seu nome: Maravilhoso, Conselheiro, Deus Forte, Pai da Eternidade, Príncipe da Paz.

Isaías 9:6
Porque um menino nos nasceu, um filho se nos deu, e o principado está sobre os seus ombros, e se chamará o seu nome: Maravilhoso, Conselheiro, Deus Forte, Pai da Eternidade, Príncipe da Paz.

Isaías 9:6

Referências:


José Carlos Macoratti