Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tutorial introdutório fornece uma introdução à linguagem C# e aos conceitos básicos da System.Collections.Generic.List<T> classe.
Este tutorial ensina o C#. Você escreve código C# e vê os resultados da compilação e execução desse código. Ele contém uma série de lições que criam, modificam e exploram coleções. Você trabalha principalmente com a List<T> classe.
Neste tutorial, você:
- Inicie um Codespace do GitHub com um ambiente de desenvolvimento em C#.
- Crie diferentes tipos de listas.
- Modifique o conteúdo da lista.
- Pesquisar e classificar listas.
Pré-requisitos
Você deve ter um dos seguintes:
- Uma conta do GitHub para usar os Codespaces do GitHub. Se você ainda não tiver uma, poderá criar uma conta gratuita em GitHub.com.
- Um computador com as seguintes ferramentas instaladas:
Um exemplo de lista básica
Para iniciar um Codespace do GitHub com o ambiente do tutorial, abra uma janela do navegador para o repositório do codespace do tutorial. Selecione o botão código verde e a guia Codespaces . Em seguida, selecione o + sinal para criar um novo Codespace usando esse ambiente. Se você concluiu outros tutoriais nesta série, poderá abrir esse codespace em vez de criar um novo.
Quando o codespace for carregado, crie um novo arquivo na pasta de tutoriais chamada lists.cs.
Abra seu novo arquivo.
Digite ou copie o seguinte código para lists.cs:
List<string> names = ["<name>", "Ana", "Felipe"]; foreach (var name in names) { Console.WriteLine($"Hello {name.ToUpper()}!"); }Execute o código digitando o seguinte comando na janela do terminal:
cd tutorials dotnet lists.cs
Você criou uma lista de strings, adicionou três nomes a essa lista e imprimiu os nomes em letras maiúsculas. Você está usando conceitos que aprendeu em tutoriais anteriores para percorrer a lista.
O código para exibir nomes usa o recurso de interpolação de cadeia de caracteres. Quando você precede um string com o $ caractere, é possível inserir o código C# na declaração de cadeia de caracteres. A string real substitui o código C# pelo valor que ele gera. Neste exemplo, ela substitui o {name.ToUpper()} por cada nome, convertido em letras maiúsculas, pois você chamou o método String.ToUpper.
Vamos continuar explorando.
Modificar o conteúdo da lista
A coleção que você criou usa o tipo List<T>. Esse tipo armazena sequências de elementos. Especifique o tipo dos elementos entre os colchetes.
Um aspecto importante desse List<T> tipo é que ele pode crescer ou reduzir, permitindo que você adicione ou remova elementos. Você pode ver os resultados quando modificar o conteúdo depois que exibir seu respectivo conteúdo.
Adicione o código a seguir após o código que você já escreveu (o loop que imprime o conteúdo):
Console.WriteLine(); names.Add("Maria"); names.Add("Bill"); names.Remove("Ana"); foreach (var name in names) { Console.WriteLine($"Hello {name.ToUpper()}!"); }Você adicionou mais dois nomes ao final da lista. Também removeu um. A saída desse bloco de código mostra o conteúdo inicial e, em seguida, imprime uma linha em branco e o novo conteúdo.
O List<T> permite que você faça referência a itens individuais por índice também. Você acessa itens usando os tokens
[e]. Adicione o seguinte código após o que você já escreveu e experimente:Console.WriteLine($"My name is {names[0]}."); Console.WriteLine($"I've added {names[2]} and {names[3]} to the list.");Você não tem permissão para acessar após o final da lista. Você pode verificar o comprimento da lista usando a propriedade Count.
Adicione o seguinte código:
Console.WriteLine($"The list has {names.Count} people in it");Digite
dotnet lists.csnovamente na janela do terminal para ver os resultados. Em C#, os índices começam em 0, portanto, o maior índice válido é um a menos do que o número de itens na lista.
Para obter mais informações sobre índices, consulte o artigo Explorar índices e intervalos .
Pesquisar e classificar listas
Nossos exemplos usam listas relativamente pequenas, mas seus aplicativos geralmente podem criar listas com muitos outros elementos, às vezes numerando em milhares. Para encontrar elementos nessas coleções maiores, você precisa procurar diferentes itens na lista. O IndexOf método pesquisa um item e retorna o índice do item. Se o item não estiver na lista, IndexOf retornará -1.
Tente ver como funciona. Adicione o seguinte código após o que você escreveu até agora:
var index = names.IndexOf("Felipe"); if (index == -1) { Console.WriteLine($"When an item is not found, IndexOf returns {index}"); } else { Console.WriteLine($"The name {names[index]} is at index {index}"); } index = names.IndexOf("Not Found"); if (index == -1) { Console.WriteLine($"When an item is not found, IndexOf returns {index}"); } else { Console.WriteLine($"The name {names[index]} is at index {index}"); }Talvez você não saiba se um item está na lista, portanto, você sempre deve verificar o índice retornado por IndexOf. Se for
-1, o item não foi encontrado.Você também pode classificar os itens em sua lista. O Sort método classifica todos os itens da lista em sua ordem normal (em ordem alfabética para cadeias de caracteres). Adicione este código e execute novamente:
names.Sort(); foreach (var name in names) { Console.WriteLine($"Hello {name.ToUpper()}!"); }
Listas de outros tipos
Até agora, você tem usado o tipo string em listas. Vamos criar um List<T> com um tipo diferente. Vamos criar um conjunto de números.
Adicione o seguinte código no final do arquivo de origem:
List<int> fibonacciNumbers = [1, 1];Esse código cria uma lista de inteiros e define os dois primeiros inteiros como o valor 1. A Sequência de Fibonacci, uma sequência de números, começa com dois 1. Cada próximo número fibonacci é encontrado tomando a soma dos dois números anteriores.
Adicione este código:
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1]; var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2]; fibonacciNumbers.Add(previous + previous2); foreach (var item in fibonacciNumbers) { Console.WriteLine(item); }Digite
dotnet lists.csna janela do terminal para ver os resultados.
Desafio
Veja se você pode reunir alguns dos conceitos desta e das lições anteriores. Expanda o que você criou até agora com números de Fibonacci. Tente escrever o código para gerar os primeiros 20 números na sequência. (Como dica, o 20º número de Fibonacci é 6765.)
Você pensou em algo assim?
List<int> fibonacciNumbers = [1, 1];
while (fibonacciNumbers.Count < 20)
{
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
}
foreach (var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
Com cada iteração do loop, você pega os dois últimos inteiros na lista, soma-os e adiciona esse valor à lista. O loop é repetido até que você adicione 20 itens à lista.
Você concluiu o tutorial sobre listas. Saiba mais sobre as coleções do .NET nos seguintes artigos:
Recursos de limpeza
O GitHub exclui automaticamente o Codespace após 30 dias de inatividade. Se você planeja explorar mais tutoriais nesta série, pode deixar o seu Codespace provisionado. Se você estiver pronto para visitar o site do .NET para baixar o SDK do .NET, poderá excluir seu Codespace. Para excluir seu Codespace, abra uma janela do navegador e navegue até seus Codespaces. Você deve ver uma lista de seus codespaces na janela. Selecione os três pontos (...) na entrada para o codespace do tutorial de aprendizado e selecione excluir.