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>:
Inserir itens na lista usando um índice
Obter o índice de um elemento da lista
Localizar um item na lista pelo seu índice
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>() {
foreach (var i in galaxias) Console.WriteLine("\nInserindo o elemento nos indíces 5,6,7,8 e 9");
Console.WriteLine("\nPressione algo para iniciar...");
galaxias.Insert(5, "Bode");
foreach (var i in galaxias) 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>() {
foreach(var item in galaxias)
// encontrando o indice
// exibindo o indice 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>() {
foreach (var item in galaxias) 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
Referências: