Olá, Ulysses, como vai?
O uso do HashSet é uma excelente escolha para garantir que os valores sejam únicos, pois essa estrutura impede nativamente a duplicidade de elementos. Para realizar a ordenação, a utilização do método OrderBy do LINQ resolve a necessidade de exibir os valores de forma crescente antes da iteração com o foreach. Seu código atende perfeitamente aos requisitos da atividade e demonstra um bom entendimento sobre manipulação de coleções em C#.
Parabéns por compartilhar sua solução e continue postando seu progresso nos estudos. O fórum permanece à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!