1
resposta

Erro na aula Selecionando generos musicais

Estou com um erro no meu código que não consegui entender o motivo, meu visual studio aponta erro nessa fração:

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeentretanto no projeto da aula o código está idêntico:

Insira aqui a descrição dessa imagem para ajudar na acessibilidadenão entendi o que pode ser esse erro retornado

1 resposta

Olá Isaac, tudo bem com você?

O erro CS1061 indica que o tipo Musicas não contém uma definição para Genero.

Uma possibilidade é que a classe Musica no seu projeto não tenha uma propriedade pública chamada Genero, ou talvez haja algum erro de digitação ou diferença de maiúsculas e minúsculas que está causando o problema. Verifique se a propriedade Genero existe na classe Musica e se ela está acessível (ou seja, se é pública).

Exemplo de como deve ficar a classe Musica:

internal class Musica
{
    private string[] tonalidades = { "C", "C#", "D", "Eb", "E", "F", "F#", "G", "Ab", "A", "Bb", "B" };

    [JsonPropertyName("song")]
    public string? Nome { get; set; }
    [JsonPropertyName("artist")]
    public string? Artista { get; set; }

    [JsonPropertyName("duration_ms")]
    public int Duracao { get; set; }
    [JsonPropertyName("genre")]
    public string? Genero { get; set; }

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

    public string Tonalidade {
        get
        {
            return tonalidades[Key];
        }
    }
    public void ExibirDetalhesDaMusica()
    {
        Console.WriteLine($"Artista: {Artista}");
        Console.WriteLine($"Música: {Nome}");
        Console.WriteLine($"Duração em segundos: {Duracao /1000}");
        Console.WriteLine($"Gênero musical: {Genero}");
        Console.WriteLine($"Tonalidade: {Tonalidade}");
    }
}

Outro detalhe é que você está usando o atributo Distinc, mas o correto é Distinct():

public static void FiltrarTodosOsGenerosMusicais(List<Musica> musicas)
{
    var todosOsGenerosMusicais = musicas.Select(generos => generos.Genero).Distinct().ToList();
    foreach (var genero in todosOsGenerosMusicais)
    {
        Console.WriteLine($"- {genero}");
    }
}

Faça essas alterações, salve o arquivo e verifique se obterá êxito.

Espero ter ajudado. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!