Ir ao conteúdo
  • Cadastre-se
Emerson111

Duvida em C#

Recommended Posts

Preciso fazer um código em C# que faça o cadastro de 20 livros, tendo a opção de incluir, excluir, sair do programa e informar que a lista está completa.

Destas funcionalidades somente não consegui fazer aparecer a mensagem informando que os 20 livros já estão cadastrados. solicito ajuda para finalizar esse código.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int count = 0;
Console.WriteLine("");
Console.WriteLine("INCLUSAO PILHA");

Console.WriteLine("+--------------------+");
Console.WriteLine("| Menu Operacoes |");
Console.WriteLine("| 0 - Sair |");
Console.WriteLine("| 1 - Incluir |");
Console.WriteLine("| 2 - Excluir |");
Console.WriteLine("+--------------------+");
Console.WriteLine("");
string opcao = "";
string[] livros = new string[20];
string livro = "";
while (!opcao.Equals(0))
{
Console.Write("\nEscolha uma opcao: ");
opcao = Console.ReadLine();
if (opcao == "1")
{


if (count < 20)
{
Console.Write("\nNome do livro a ser cadastrado: ");
livro = Console.ReadLine();
livros[count] = livro;
count++;
Console.WriteLine("Livro " + livro + " cadastrado com sucesso!!!");
}
else
{
Console.WriteLine("OVERFLOW - Erro de excesso de dados, sua lista esta completa !!!");
}
}
else if (opcao == "2")
{
Console.Write("Informe o nome do livro a ser excluido: ");
livro = Console.ReadLine();
if (livros.Contains(livro))
{
int numIdx = (Array.IndexOf(livros, livro));
List<string> lista = livros.ToList();
lista.Remove(livros[numIdx]);
livros = lista.ToArray();
Console.WriteLine("Livro " + livro + " excluido com sucesso.");
}


else
{
Console.WriteLine("livro nao encontrado");
}
}
else if (opcao == "0")
{
return;
}
else
{
Console.WriteLine("Opção inválida.");
}
}

}
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você esta fazendo uma permutação entre List<string> e string[] desnecessária, acredito que deveria usar apenas o List<string> que possui muito mais recursos.

Agora quanto a dúvida, você deve verificar se a lista já contem 20 livros antes de mostrar a mensagem para digitar uma opção.

Se for usar o string[] você terá que acessar a propriedade Length para verificar quantos livros a lista possui, se for usar o List<string> você terá que utilizar a propriedade Count.

Espero ter ajudado.

ATT,

LBarcelosM

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo... testei seu código, e esta funcionando ..... só falta decrementar count quando remover um livro....

nesta parte do codigo....


if (livros.Contains(livro))
{
int numIdx = (Array.IndexOf(livros, livro));
List<string> lista = livros.ToList();
lista.Remove(livros[numIdx]);
livros = lista.ToArray();
Console.WriteLine("Livro " + livro + " excluido com sucesso.");
count--;
}

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×