1
resposta

[Projeto] Resolução do Desafio:

[JsonPropertyName("key")]
public int? NotaDaMusicaEmNumero { get; set; }

    public string? NotaDaMusicaEmTexto =>
            NotaDaMusicaEmNumero == 0 ? "C":
            NotaDaMusicaEmNumero == 1 ? "C#": 
            NotaDaMusicaEmNumero == 2 ? "D" :
            NotaDaMusicaEmNumero == 3 ? "D#" :
            NotaDaMusicaEmNumero == 4 ? "E" :
            NotaDaMusicaEmNumero == 5 ? "F" :
            NotaDaMusicaEmNumero == 6 ? "F#" :
            NotaDaMusicaEmNumero == 7 ? "G" :
            NotaDaMusicaEmNumero == 8 ? "G#" :
            NotaDaMusicaEmNumero == 9 ? "A" :
            NotaDaMusicaEmNumero == 10 ? "A#" :
            NotaDaMusicaEmNumero == 11 ? "B" : "Desconhecido";
        
    public void ExibirDetalhesDaMusica()
{
Console.WriteLine($"Nome: {Nome}");
Console.WriteLine($"Artista: {Artista}");
Console.WriteLine($"Duração: {Duracao} ms");
Console.WriteLine($"Gênero: {Genero}");
Console.WriteLine($"Key: {NotaDaMusicaEmTexto}");
        Console.WriteLine();
}
}
1 resposta

Oi, Gabriel! Como vai?

Sua abordagem para mapear os valores numéricos das notas musicais usando o operador ternário está clara e bem objetiva. Esse tipo de estrutura funciona bem para casos diretos como esse e mostra atenção aos detalhes no mapeamento das notas.

Uma dica interessante para o futuro é usar um Dictionary para esse tipo de conversão. Fica mais limpo e facilita a manutenção:


var notas = new Dictionary<int, string>
{
    {0, "C"}, {1, "C#"}, {2, "D"}, {3, "D#"}, {4, "E"},
    {5, "F"}, {6, "F#"}, {7, "G"}, {8, "G#"}, {9, "A"},
    {10, "A#"}, {11, "B"}
};

string notaTexto = notas.ContainsKey(nota) ? notas[nota] : "Desconhecido";
Console.WriteLine(notaTexto);

Esse código cria um dicionário que associa números às notas musicais e busca o valor correspondente de forma simples.

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