3
respostas

[Dúvida] Exercicio 2

O código está quase pronto mas tem um problema

Ele não imprime está linha corretamente

Console.WriteLine($"Pizza de {produto}:{estoqueDoProduto[produto]}");

Sai uma mensagem de erro:
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Dictionary<string, List<int>> estoqueDoProduto = new Dictionary<string, List<int>>();
estoqueDoProduto.Add("Calabresa", new List<int> {20});
estoqueDoProduto.Add("Frango", new List<int> {20});
estoqueDoProduto.Add("Carne de Panela", new List<int> { 20 });

Console.Write("Digite o sabor da Pizza");
string produto = Console.ReadLine()!;

if (estoqueDoProduto.ContainsKey(produto))
{
    Console.WriteLine($"Pizza de {produto}:{estoqueDoProduto[produto]}");
    
}
else
{
    Console.WriteLine("Produto não encontrado");
}

Qual o erro?

3 respostas

Olá, Ivan! Tudo bem?

O problema está na forma como você está tentando acessar e imprimir o valor do dicionário. O valor associado a cada chave no seu dicionário é uma lista (List<int>), e não um único inteiro. Quando você tenta imprimir estoqueDoProduto[produto], ele está tentando imprimir a lista inteira, o que resulta na saída que você viu.

Para corrigir isso, você precisa acessar o primeiro elemento da lista. Aqui está como você pode fazer:

if (estoqueDoProduto.ContainsKey(produto))
{
    Console.WriteLine($"Pizza de {produto}: {estoqueDoProduto[produto][0]}");
}
else
{
    Console.WriteLine("Produto não encontrado");
}

Dessa forma, estoqueDoProduto[produto][0] acessa o primeiro elemento da lista, que é o número que você deseja imprimir.

Espero ter ajudado e bons estudos!

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

Deu certo mas na primeira vez não funcionou, então achei que tivesse escrito errado, e alterei o Console.WriteLine para ficar um pouco mais legível, então compilei, apareceu uma mensagem de erro , algo na memoria , depois executei o programa, com a indicação e funcionou normalmente

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Dictionary<string, List<int>> estoqueDoProduto = new Dictionary<string, List<int>>();
estoqueDoProduto.Add("Calabresa", new List<int> {20});
estoqueDoProduto.Add("Frango", new List<int> {20});
estoqueDoProduto.Add("Carne de Panela", new List<int> { 20 });

Console.Write("Digite o sabor da Pizza: ");
string produto = Console.ReadLine()!;

if (estoqueDoProduto.ContainsKey(produto))
{
    Console.WriteLine($"Pizza de {produto}:{estoqueDoProduto[produto][0]}");
    
}
else
{
    Console.WriteLine("Produto não encontrado");
}