1
resposta

List<> para Hashset<>

List<int> scores = [];

scores.Add(150);
scores.Add(90);
scores.Add(200);
scores.Add(120);
scores.Add(150);
scores.Add(80);
scores.Add(180);
scores.Add(200);

ExibirPontuacoesUnicas(scores);

static void ExibirPontuacoesUnicas(List<int> pontuacoes)
{
    HashSet<int> pontuacoesUnicas = [];
    pontuacoes.Sort();
    foreach (int pontuacao in pontuacoes)
        pontuacoesUnicas.Add(pontuacao);

    Console.WriteLine($"Scores únicos em ordem crescente: \n{string.Join(Environment.NewLine, pontuacoesUnicas)}");
}
1 resposta

Oi, Robson.

Meus parabéns por concluir o desafio de organizando elementos únicos. É excelente ver como você estruturou a sua solução utilizando métodos e aproveitando as características das coleções no C# para limpar e ordenar os dados.

Sua abordagem de receber uma lista e transformá-la em um conjunto é muito interessante. Ao realizar o Sort() na lista original e depois adicionar os itens ao HashSet, você garante que o processamento resulte em uma estrutura sem duplicatas. Além disso, o uso do string.Join com Environment.NewLine demonstra um ótimo conhecimento de manipulação de strings, deixando a saída no console limpa e profissional.

Para casos onde você precisa de unicidade e ordem crescente automática em uma única estrutura, existe o SortedSet<int>. Ele já organiza os elementos conforme eles são inseridos, eliminando a necessidade de usar o Sort() ou converter tipos. Você pode explorar mais sobre isso na documentação oficial sobre coleções genéricas no .NET.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!