string[] nomes = { "Fernanda", "Eduardo", "Gustavo", "Carolina", "Alice", "Bruno", "Daniel" };
Array.Sort(nomes);
Console.WriteLine($"O terceiro nome da lista após ordenação é: {nomes[2]}");
string[] nomes = { "Fernanda", "Eduardo", "Gustavo", "Carolina", "Alice", "Bruno", "Daniel" };
Array.Sort(nomes);
Console.WriteLine($"O terceiro nome da lista após ordenação é: {nomes[2]}");
Olá, Eduardo. Como vai?
Excelente código! Sua resolução está totalmente correta e demonstra um ótimo entendimento prático sobre como ordenar dados estruturados em arrays.
O uso do método utilitário Array.Sort() é exatamente a melhor prática nativa do C# para ordenar coleções desse tipo. Como as strings são classificadas em ordem alfabética por padrão, a sua lógica de acessar o índice 2 para buscar o terceiro nome (lembrando sempre que os arrays começam na posição zero) funcionou com precisão cirúrgica.
Após a ordenação do seu array, os elementos ficaram organizados assim nos bastidores:
nomes[0] = "Alice"nomes[1] = "Bruno"nomes[2] = "Carolina" (O terceiro elemento!)Para expandir ainda mais seus conhecimentos e agregar valor ao seu projeto para os colegas do fórum, separei dois conceitos avançados bem importantes sobre como o C# lida com essa ordenação:
Um detalhe conceitual muito importante é que o método Array.Sort() realiza uma operação chamada in-place. Isso significa que ele modifica diretamente o array original na memória, em vez de criar uma cópia nova ordenada.
Se em um projeto real você precisasse manter a ordem original do cadastro dos usuários (por exemplo, a ordem de chegada) e gerar uma versão ordenada apenas para exibição, o ideal seria clonar o array antes de ordenar, ou utilizar o LINQ:
using System.Linq;
// O LINQ cria uma nova sequência sem alterar o array original 'nomes'
var nomesOrdenadosLinq = nomes.OrderBy(n => n).ToArray();
A ordenação padrão de strings do C# utiliza as regras culturais do sistema operacional (conhecida como CurrentCulture). Por padrão, ela agrupa letras maiúsculas e minúsculas juntas, mas dá sutil prioridade para letras minúsculas em alguns cenários de comparação pura de caracteres.
Se você precisar de um controle total e absoluto sobre como o algoritmo deve ordenar (por exemplo, ignorando completamente se a letra é maiúscula ou minúscula), você pode passar um parâmetro adicional de comparação ao método:
// Ordena ignorando completamente a diferença entre maiúsculas e minúsculas
Array.Sort(nomes, StringComparer.OrdinalIgnoreCase);
Parabéns por mais essa entrega impecável! Seus exercícios de coleções estão com uma qualidade técnica excelente.
Espero que possa ter lhe ajudado!