2
respostas

Estou com problemas

// Aqui eu preciso criar um Dictionary? para saber se este artista existe? pois não estou conseguindo fazer este relacionamento

namespace AluraFilmes.Model;

class Artista { public string Nome { get; } public string Idade { get; } private List listaDeFilmesAtuacao = new List();

public Artista(string nome, string idade)
{
    Nome = nome;
    Idade = idade;
}

public void AdicionarNovoFilmeQueAtuou(Filme filme) 
{
    listaDeFilmesAtuacao.Add(filme);
    
}

}

namespace AluraFilmes.Model;

class Filme { public string Titulo { get; } public int Duracao { get; } private List listaElenco = new List();

public Filme(string titulo, int duracao)
{
    Titulo = titulo;
    Duracao = duracao;
}

public void InserirElenco(Artista elenco)
{
    listaElenco.Add(elenco);
    elenco.AdicionarNovoFilmeQueAtuou(this);


}

}

using AluraFilmes.Model;

Filme filme = new Filme("Teste", 120); Artista artista = new Artista("Kauê", "19"); filme.InserirElenco(artista);

ExbirMenu();

void AdiconarFilme() { Console.Clear(); Console.Write("Digite o nome do filme: "); string nomeFilme = Console.ReadLine()!; Console.Write("\nDigite a Duração do filme: "); string duracaoFilme = Console.ReadLine()!;

Filme novoFilme = new(nomeFilme, int.Parse(duracaoFilme));
Thread.Sleep(2000);
ExbirMenu();

}

void AdiconarArtista() { Console.Clear(); Console.Write("Digite o nome do Artista: "); string nomeArtista = Console.ReadLine()!; Console.Write("\nDigite a idade: "); string idadeArtista = Console.ReadLine()!;

Artista novoArtista = new(nomeArtista, idadeArtista);
Thread.Sleep(2000);
ExbirMenu();

}

void AdiconarArtistaNoElencoDoFilme() { Console.Write("Digite o nome do artista: "); string nomeArtista = Console.ReadLine()!;

}

void ExbirMenu() { Console.Clear(); Console.WriteLine("ALURA FILMES\n"); Console.WriteLine("1 - Adicionar Filmes"); Console.WriteLine("2 - Adicionar Artista"); Console.WriteLine("3 - Adicionar Artista no filme"); Console.WriteLine("4 - Ver informações do Filme\n"); Console.Write("Qual opção você deseja: "); string opcaoEscolhida = Console.ReadLine()!;

switch (int.Parse(opcaoEscolhida))
{
    case 1:
        AdiconarFilme();
        break;
    case 2:
        AdiconarArtista();
        break;
    case 3:
        Console.WriteLine();
        break;
    case 4:
        Console.WriteLine();
        break;
}

}

2 respostas
using AluraFilmes.Model;

Filme filme = new Filme("Teste", 120);
Artista artista = new Artista("Kauê", "19");
filme.InserirElenco(artista);
Dictionary<string, Artista> listaDeArtistas = new Dictionary<string, Artista>();
Dictionary<string, Filme> listaDeFilmes = new Dictionary<string, Filme>();


ExbirMenu();

void AdiconarFilme()
{
    Console.Clear();
    Console.Write("Digite o nome do filme: ");
    string nomeFilme = Console.ReadLine()!;
    Console.Write("\nDigite a Duração do filme: ");
    string duracaoFilme = Console.ReadLine()!;

    Filme novoFilme = new(nomeFilme, int.Parse(duracaoFilme));
    listaDeFilmes.Add(nomeFilme, novoFilme);
    Thread.Sleep(2000);
    ExbirMenu();


}

void AdiconarArtista()
{
    Console.Clear();
    Console.Write("Digite o nome do Artista: ");
    string nomeArtista = Console.ReadLine()!;
    Console.Write("\nDigite a idade: ");
    string idadeArtista = Console.ReadLine()!;

    Artista novoArtista = new(nomeArtista, idadeArtista);
    listaDeArtistas.Add(nomeArtista, novoArtista);
    Thread.Sleep(2000);
    ExbirMenu();


}

void AdiconarArtistaNoElencoDoFilme()
{
    Console.Write("Digite o nome do artista: ");
    string nomeArtista = Console.ReadLine()!;
    if (listaDeArtistas.ContainsKey(nomeArtista))
    {
        Console.Write("Digite o nome do Filme: ");
        string nomeFilme = Console.ReadLine()!;
        if (listaDeFilmes.ContainsKey(nomeFilme))
        {
            Artista artista = listaDeArtistas[nomeArtista];
            listaDeFilmes[nomeFilme].InserirElenco(artista);
        }
        else
        {
            Console.WriteLine("Filme não encontrado.");
        }
    }
    else
    {
        Console.WriteLine("Artista não encontrado.");
    }

    Thread.Sleep(2000);
    ExbirMenu();

}

void ExibirInformacoesDoFilme()
{
    Console.Write("Digite o nome do Filme: ");
    string nomeFilme = Console.ReadLine()!;
    if (listaDeFilmes.ContainsKey(nomeFilme))
    {
        foreach (KeyValuePair<string, Filme> entry in listaDeFilmes)
        {
            Filme filme = entry.Value;
            filme.ExibirElenco();
        }
    }
    Thread.Sleep(2000);
    ExbirMenu();

}
void ExibirInformacoesDoArtista()
{
    Console.Write("Digite o nome do Artista: ");
    string nomeArtista = Console.ReadLine()!;
    if (listaDeArtistas.ContainsKey(nomeArtista))
    {
        foreach (KeyValuePair<string, Artista> entry in listaDeArtistas)
        {
            Artista artista1 = entry.Value;
            artista1.exibirListaDeFilmes();
        }
    }
    Thread.Sleep(2000);
    ExbirMenu();

}


void ExbirMenu()
{
    Console.Clear();
    Console.WriteLine("ALURA FILMES\n");
    Console.WriteLine("1 - Adicionar Filmes");
    Console.WriteLine("2 - Adicionar Artista");
    Console.WriteLine("3 - Adicionar Artista no filme");
    Console.WriteLine("4 - Ver informações do Filme\n");
    Console.WriteLine("5 - Ver informações do Artista\n");
    Console.Write("Qual opção você deseja: ");
    string opcaoEscolhida = Console.ReadLine()!;

    switch (int.Parse(opcaoEscolhida))
    {
        case 1:
            AdiconarFilme();
            break;
        case 2:
            AdiconarArtista();
            break;
        case 3:
            AdiconarArtistaNoElencoDoFilme();
            break;
        case 4:
            ExibirInformacoesDoFilme();
            break;
        case 5:
            ExibirInformacoesDoArtista();
            break;
    }
}
namespace AluraFilmes.Model;

class Artista
{
    public string Nome { get; }
    public string Idade { get; }
    private List<Filme> listaDeFilmesAtuacao = new List<Filme>();

    public Artista(string nome, string idade)
    {
        Nome = nome;
        Idade = idade;
    }

    public void AdicionarNovoFilmeQueAtuou(Filme filme) 
    {
        listaDeFilmesAtuacao.Add(filme);
        
    }

    public void exibirListaDeFilmes()
    {
        foreach(Filme f in listaDeFilmesAtuacao)
        {
            Console.WriteLine(f.Titulo);
        }
    }

}
namespace AluraFilmes.Model;

class Filme
{
    public string Titulo { get; }
    public int Duracao { get; }
    private List<Artista> listaElenco = new List<Artista>();

    public Filme(string titulo, int duracao)
    {
        Titulo = titulo;
        Duracao = duracao;
    }

    public void InserirElenco(Artista elenco)
    {
        listaElenco.Add(elenco);
        elenco.AdicionarNovoFilmeQueAtuou(this);
    }

    public void ExibirElenco()
    {
        foreach(Artista a in listaElenco)
        {
            Console.WriteLine(a.Nome);
        }
    }

}

Consegui resolver

Sim, você está correto! Para verificar se um artista já existe antes de adicioná-lo ao elenco de um filme, você precisará de uma estrutura de dados que permita buscar artistas por nome. Um Dictionary é uma excelente opção para isso.