List<char> caracteres = new List<char> { 'o', 'd', 'n', 'u', 'm', ' ', 'á', 'l', 'o' };
caracteres.Reverse();
foreach (var item in caracteres)
{
Console.WriteLine(item);
}
List<char> caracteres = new List<char> { 'o', 'd', 'n', 'u', 'm', ' ', 'á', 'l', 'o' };
caracteres.Reverse();
foreach (var item in caracteres)
{
Console.WriteLine(item);
}
Olá, Eduardo. Como vai?
Excelente código! Sua resolução está corretíssima e demonstra que você compreendeu muito bem a mecânica do método Reverse(). Ao aplicar a inversão na lista de caracteres 'o', 'd', 'n', 'u', 'm', ' ', 'á', 'l', 'o', a coleção passa a ter o fluxo invertido de leitura, revelando perfeitamente a mensagem escondida "olá mundo".
Como o objetivo do seu código é exibir a mensagem na tela, separei duas dicas técnicas que vão te ajudar a melhorar o formato de saída do texto no console e a explorar novos recursos do C#:
Do jeito que o código está estruturado com o Console.WriteLine(item), o terminal vai imprimir cada letra em uma linha diferente (verticalmente).
Para que o texto seja exibido de forma natural (horizontalmente) como uma frase completa, você tem duas opções simples:
Console.WriteLine() para Console.Write(), que imprime os caracteres um ao lado do outro sem pular linha:foreach (var item in caracteres)
{
Console.Write(item);
}
string mensagem = new string(caracteres.ToArray());
Console.WriteLine(mensagem); // Imprime: olá mundo
AsEnumerable().Reverse())Nos desafios anteriores, conversamos sobre como o método .Reverse() altera a lista original permanentemente (chamamos isso de operação in-place).
Se em um projeto real você precisasse descobrir a mensagem oculta, mas não pudesse modificar a ordem da lista original caracteres, você poderia usar o LINQ. O método .Reverse() do LINQ gera uma nova sequência invertida na memória sem mexer na estrutura inicial:
using System.Linq;
// Cria uma cópia invertida sem alterar a lista 'caracteres'
foreach (var item in caracteres.AsEnumerable().Reverse())
{
Console.Write(item);
}
Parabéns por mais essa entrega prática e por dominar com tanta consistência a manipulação de coleções de dados no C#!
Espero que possa ter lhe ajudado!