Olá Thaís, como vai??
Para resolver este problema basta modificar esta linha:
Dictionary<string, List> bandasRegistradas = new Dictionary<string, List>();
Por esta:
Dictionary<string, List<int>> bandasRegistradas = new(StringComparer.OrdinalIgnoreCase);
Explicação:
`
Dictionary<string, List>.Dictionary(IEqualityComparer? comparer)
O dicionario nos permite definir um comparador como argumento, assim podemos dizer a ele a forma que gostariamos de comparar as chaves e valores.`
Uso de StringComparer.OrdinalIgnoreCase:
StringComparer.OrdinalIgnoreCase é um comparador que ignora a diferença entre maiúsculas e minúsculas ao comparar strings. Ao usar esse comparador na criação do Dictionary como argumento, garante-se que as operações de comparação de chave (como ContainsKey) ignorem a diferença de case. Isso significa que bandasRegistradas["Red Hot"] será tratado da mesma forma que bandasRegistradas["red hot"].
Uso de Tipagem Específica para List:
No código original, List não especifica o tipo de elementos que ele contém. Em C#, usar lista genérica List<T> requer um argumento de tipo, onde T é o tipo de elementos na lista. No seu caso, você está armazenando notas, que são inteiros. Portanto, use List<int> para especificar que a lista conterá elementos do tipo int.
Com essas alterações você melhora a usabilidade da aplicação, resolvendo o problema ao buscar pelas bandas. Espero ter ajudado e bons estudos!!