string[] nomes = { "Fernanda", "Ed", "Gus", "Alice", "Bruno", "Daniel" };
Array.Sort(nomes);
foreach (var nome in nomes) {
Console.WriteLine(nome);
}
Console.WriteLine($"\n{nomes[2]} foi convocada para uma cerimônia especial.");
string[] nomes = { "Fernanda", "Ed", "Gus", "Alice", "Bruno", "Daniel" };
Array.Sort(nomes);
foreach (var nome in nomes) {
Console.WriteLine(nome);
}
Console.WriteLine($"\n{nomes[2]} foi convocada para uma cerimônia especial.");
Olá, Diego. Como vai?
Parabéns por mais uma resolução! O uso do método estático Array.Sort() é a maneira mais clássica e eficiente no C# para ordenar os elementos de um array unidimensional.
Quando aplicamos o Array.Sort() em um array de strings, por padrão, o .NET organiza os elementos em ordem alfabética crescente. É muito importante notar que esse método altera o array original diretamente na memória (uma operação conhecida como ordenação in-place).
Fazendo o mapeamento do seu código, após a execução de Array.Sort(nomes), a estrutura do seu array passa a ser:
[0]: "Alice"[1]: "Bruno"[2]: "Daniel"[3]: "Ed"[4]: "Fernanda"[5]: "Gus"Portanto, a saída final do seu console no último WriteLine será:Daniel foi convocada para uma cerimônia especial.
(Como uma pequena observação de contexto: se "Daniel" for um nome masculino, a frase impressa ficará com uma pequena divergência de gênero ("Daniel foi convocada"). Se a intenção era selecionar uma pessoa do gênero feminino, você pode ajustar o índice ou os nomes do array para que a concordância fique perfeita!).
Para complementar os seus estudos sobre ordenação de coleções no C#, gostaria de compartilhar duas excelentes alternativas muito utilizadas no mercado:
1. Ordenação Inversa (Ordem Alfabética Decrescente)
Se em algum momento você precisar ordenar o seu array de trás para frente (Z para A), o C# oferece o método Array.Reverse(). Para utilizá-lo, você deve primeiro ordenar normalmente e depois inverter:
string[] nomes = { "Fernanda", "Ed", "Gus", "Alice", "Bruno", "Daniel" };
Array.Sort(nomes); // Organiza de A-Z
Array.Reverse(nomes); // Inverte para Z-A
// Agora o nomes[0] seria "Gus", nomes[1] seria "Fernanda", etc.
2. Ordenação sem modificar o Array Original (Usando LINQ)
Há cenários no dia a dia onde você precisa exibir os nomes ordenados, mas não pode alterar a ordem original do array porque o índice antigo importa para outra parte do sistema. Para isso, usamos o método de extensão OrderBy do LINQ:
using System.Linq;
string[] nomes = { "Fernanda", "Ed", "Gus", "Alice", "Bruno", "Daniel" };
// Cria uma nova sequência ordenada sem mexer no array original
var nomesOrdenados = nomes.OrderBy(n => n);
foreach (var nome in nomesOrdenados) {
Console.WriteLine(nome);
}
// O array 'nomes' original continua intacto!
// nomes[2] ainda será "Gus", pois a ordem inicial foi preservada.
Dominar essas diferentes formas de manipulação te dá total controle sobre como gerenciar e apresentar fluxos de dados nos seus projetos.
Espero que possa ter lhe ajudado!