A definição de uma coleção costuma incluir um espaço reservado entre sinais de maior e menor, geralmente T por convenção. Uma coleção assim é chamada de tipo genérico. Isso permite que quem usa a coleção especifique que tipo de item será armazenado nela. No exemplo de código abaixo, estamos instanciando uma lista de strings.
As listas em C# são coleções de valores primitivos ou de instâncias de structs ou classes. Elas são implementadas na biblioteca de classes base como List<T>, em que T é o tipo do item da lista. A API expõe um conjunto rico de métodos para criar e manipular listas.
É possível adicionar e remover itens das listas. Elas crescem e diminuem conforme a necessidade.
var listOfStrings = new List<string>();
Neste exercício, você vai escrever código para acompanhar uma lista de linguagens de programação que quer aprender no Exercism.
Você tem nove tarefas, e todas elas envolvem lidar com listas.
Para acompanhar as linguagens que você quer aprender, você vai precisar criar uma nova lista.
Implemente o método estático Languages.NewList() que retorna uma nova lista vazia.
Languages.NewList()
// => empty list
No momento, você tem um pedaço de papel listando as linguagens que quer aprender: C#, Clojure e Elm.
Implemente o método estático Languages.GetExistingLanguages() para retornar a lista.
Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}
Conforme você explora o Exercism e encontra linguagens mais interessantes, você quer adicioná-las à sua lista.
Implemente a função estática Languages.AddLanguage() para adicionar uma nova linguagem ao final da sua lista.
Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}
Contar as linguagens uma a uma é inconveniente.
Implemente o método estático Languages.CountLanguages() para contar quantas linguagens há na sua lista.
Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3
Implemente o método estático Languages.HasLanguage() para verificar se uma linguagem está presente.
Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true
Em algum momento, você percebe que sua lista na verdade está em ordem inversa!
Implemente o método estático Languages.ReverseList() para inverter a sua lista.
Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}
Embora você ame todas as linguagens, C# tem um lugar especial no seu coração. Por isso, você fica realmente empolgado com uma lista de linguagens se uma das seguintes condições for verdadeira:
Implemente o método estático Languages.IsExciting() para verificar se uma lista de linguagens é empolgante:
Languages.IsExciting(Languages.GetExistingLanguages())
// => true
Implemente o método estático Languages.RemoveLanguage() para remover uma linguagem específica da lista.
Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }
Implemente o método estático Languages.IsUnique() para verificar se alguma das linguagens se repete na lista.
A lista de linguagens (ou seja, o parâmetro) tem garantia de não estar vazia quando esse método é chamado, e não importa se a lista for modificada.
Languages.IsUnique(Languages.GetExistingLanguages())
// => true
Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.