Percursos
/
C#
C#
/
Exercícios
/
Tracks on Tracks on Tracks
Tracks on Tracks on Tracks

Tracks on Tracks on Tracks

Exercício de aprendizagem

Introdução

Tipos genéricos

Uma definição de coleção inclui habitualmente um marcador entre sinais de menor e maior, muitas vezes T, por convenção. Uma coleção deste tipo é designada por tipo genérico. Isto permite a quem usa a coleção especificar que tipo de itens quer guardar nela. No exemplo de código abaixo, estamos a criar uma instância de uma lista de strings.

Listas

As listas em C# são coleções de valores primitivos ou de instâncias de structs ou de classes. Estã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. As listas crescem e encolhem conforme necessário.

var listOfStrings = new List<string>();

Instruções

Neste exercício vais escrever código para manteres o registo de uma lista de linguagens de programação que queres aprender no Exercism.

Tens nove tarefas, que vão todas envolver lidar com listas.

1. Cria uma nova lista

Para manteres o registo das linguagens que queres aprender, vais precisar de criar uma nova lista.

Implementa o método estático Languages.NewList() que devolve uma nova lista vazia.

Languages.NewList()
// => empty list

2. Define uma lista existente

Atualmente, tens um pedaço de papel com a lista das linguagens que queres aprender: C#, Clojure e Elm.

Implementa o método estático Languages.GetExistingLanguages() para devolver a lista.

Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}

3. Adiciona uma nova linguagem a uma lista

À medida que exploras o Exercism e encontras linguagens mais interessantes, queres adicioná-las à tua lista.

Implementa a função estática Languages.AddLanguage() para adicionar uma nova linguagem ao fim da tua lista.

Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}

4. Conta as linguagens na lista

Contar as linguagens uma a uma é inconveniente.

Implementa o método estático Languages.CountLanguages() para contar o número de linguagens na tua lista.

Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3

5. Verifica se uma linguagem está na lista

Implementa o método estático Languages.HasLanguage() para verificar se uma linguagem está presente.

Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true

6. Inverte a lista

A certa altura, percebes que a tua lista está na verdade ordenada ao contrário!

Implementa o método estático Languages.ReverseList() para inverter a tua lista.

Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}

7. Verifica se a lista é entusiasmante

Embora gostes de todas as linguagens, o C# tem um lugar especial no teu coração. Como tal, ficas realmente entusiasmado com uma lista de linguagens se uma das seguintes condições for verdadeira:

  • A primeira da lista é C#.
  • O segundo item da lista é C# e a lista contém duas ou três linguagens.

Implementa o método estático Languages.IsExciting() para verificar se uma lista de linguagens é entusiasmante:

Languages.IsExciting(Languages.GetExistingLanguages())
// => true

8.Remove linguagem

Implementa o método estático Languages.RemoveLanguage() para remover uma linguagem especificada da lista.

Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }

9. Verifica se todas as linguagens na lista são únicas

Implementa 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 a garantia de não estar vazia quando este método é chamado e não importa se a lista for modificada.

Languages.IsUnique(Languages.GetExistingLanguages())
// => true
Editar via GitHub A ligação abre numa nova janela ou separador
C# Exercism

Estás pronto para começar Tracks on Tracks on Tracks?

Inscreve-te no Exercism para aprenderes e dominares C# com 62 conceitos178 exercícios, e mentoria humana real, tudo grátis.