Classe Filme
namespace desafio_alurafilmes.Alura.Filmes;
class Filme
{
public string title { get; set; }
public float duration { get; set; }
public List<Artista> elenco { get; }
public Filme(string title, float duration)
{
this.title = title;
this.duration = duration;
this.elenco = new List<Artista>();
}
public void addArtist(params Artista[] artists)
{
foreach (var artist in artists)
{
artist.addFilm(this);
}
this.elenco.AddRange(artists);
}
public override string ToString()
{
string elencoNomes = string.Join(',', this.elenco.Select(artist => $"{artist.name}"));
return $"title: {this.title}," +
$"duration: {this.duration}," +
$"elenco: {elencoNomes}";
}
}
Classe Artista
namespace desafio_alurafilmes.Alura.Filmes;
class Artista
{
public string name { get; set; }
public int age { get; set; }
public List<Filme> films { get; set; }
public Artista(string name, int age)
{
this.name = name;
this.age = age;
this.films = new List<Filme>();
}
public void addFilm(Filme film)
{
films.Add(film);
}
public override string ToString()
{
return $"name: {this.name}," +
$"age: {this.age}," +
$"films: {this.films}";
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using desafio_alurafilmes.Alura.Filmes;
var clubeDaLuta = new Filme("Clube da luta", 139);
var drive = new Filme("Drive", 100);
var ryanGosling = new Artista("Ryan Gosling", 43);
var bradPitt = new Artista("Brad Pitt", 60);
clubeDaLuta.addArtist(bradPitt);
drive.addArtist(ryanGosling);
List<Filme> filmes = new List<Filme>();
filmes.Add(clubeDaLuta);
filmes.Add(drive);
foreach (var film in filmes)
{
Console.WriteLine(film);
}
Console.ReadLine();
//Console.WriteLine(filmes);