using System.Collections.Generic;
public string Nacionalidade;
public Receita(string codigo, string descricao, string nacionalidade, string chef) {
Nacionalidade = nacionalidade;
static void ExibirReceita(Receita receita) {
Console.WriteLine("Código: {receita.Codigo}");
Console.WriteLine("Descrição: {receita.Descricao}");
Console.WriteLine("Nacionalidade: {receita.Nacionalidade}");
Console.WriteLine("Chef: {receita.Chef}");
Console.WriteLine("-------------------------");
static void AdicionarEditarReceita(List<Receita> livro, string codigo = null) {
string acao = (codigo == null) ? "Adicionar" : "Editar";
Console.WriteLine("Digite o código da receita que deseja {acao}: ");
string codigoInput = Console.ReadLine();
Receita receitaExistente = livro.Find(r => r.Codigo == codigoInput);
if (receitaExistente != null && codigo == null) {
Console.WriteLine("Já existe uma receita com esse código. Use a opção de edição se deseja modificar.");
Console.WriteLine("Digite a breve descrição da receita: ");
string descricao = Console.ReadLine();
Console.WriteLine("Digite a nacionalidade da receita: ");
string nacionalidade = Console.ReadLine();
Console.WriteLine("Digite o nome do chef que criou a receita: ");
string chef = Console.ReadLine();
if (receitaExistente != null) {
receitaExistente.Descricao = descricao;
receitaExistente.Nacionalidade = nacionalidade;
receitaExistente.Chef = chef;
Console.WriteLine("Receita editada com sucesso!");
Receita novaReceita = new Receita(codigoInput, descricao, nacionalidade, chef);
Console.WriteLine("Receita adicionada com sucesso!");
static void ApagarReceita(List<Receita> livro, string codigo) {
Receita receitaParaApagar = livro.Find(r => r.Codigo == codigo);
if (receitaParaApagar != null) {
livro.Remove(receitaParaApagar);
Console.WriteLine("Receita apagada com sucesso!");
Console.WriteLine("Receita não encontrada.");
static void VisualizarReceita(List<Receita> livro, string codigo) {
Receita receita = livro.Find(r => r.Codigo == codigo);
Console.WriteLine("Receita não encontrada.");
static void ProcurarPorChef(List<Receita> livro, string chef) {
Console.WriteLine("Receitas do chef {chef}:");
foreach (Receita receita in livro) {
if (receita.Chef == chef) {
static void OrdenarPorCodigo(List<Receita> livro) {
livro.Sort((a, b) => string.Compare(a.Codigo, b.Codigo));
Console.WriteLine("Receitas ordenadas por código:");
foreach (Receita receita in livro) {
public static void Main(string[] args) {
List<Receita> livroDeReceitas = new List<Receita>();
Console.WriteLine("\n------ Menu ------");
Console.WriteLine("1. Adicionar/Editar Receita");
Console.WriteLine("2. Apagar Receita");
Console.WriteLine("3. Visualizar Receita");
Console.WriteLine("4. Procurar Receitas de um Chef");
Console.WriteLine("5. Ordenar Receitas por Código");
Console.WriteLine("6. Sair");
Console.WriteLine("Escolha uma opção: ");
string opcao = Console.ReadLine();
AdicionarEditarReceita(livroDeReceitas);
Console.WriteLine("Digite o código da receita que deseja apagar: ");
string codigoApagar = Console.ReadLine();
ApagarReceita(livroDeReceitas, codigoApagar);
Console.WriteLine("Digite o código da receita que deseja visualizar: ");
string codigoVisualizar = Console.ReadLine();
VisualizarReceita(livroDeReceitas, codigoVisualizar);
Console.WriteLine("Digite o nome do chef que deseja procurar: ");
string chefProcurar = Console.ReadLine();
ProcurarPorChef(livroDeReceitas, chefProcurar);
OrdenarPorCodigo(livroDeReceitas);
Console.WriteLine("Obrigado por usar o livro de receitas. Até mais!");
Console.WriteLine("Opção inválida. Por favor, escolha uma opção válida.");