Utilizei uma forma de dividir as listas de jogos por nomes de empresas, além de adicionar funcionalidades para possíveis jogos gratuitos ou de unidades indeterminadas.
Jogos.cs
class Jogos
{
//Construtor de Jogo.
public Jogos(string nome, string tema, int unidades = 0, int preco = 0)
{
Nome = nome;
Tema = tema;
Unidades = unidades;
Preco = preco;
}
public string Nome { get; }
public string Tema { get; }
public int Unidades { get; }
public int Preco { get;}
}
CatalogoDeJogos.cs
class CatalogoDeJogos
{
//Lista de jogos.
private List<Jogos> ListaDeJogos = new List<Jogos>();
//Construtor que leva o nome da empresa.
public CatalogoDeJogos(string nome)
{
Nome = nome;
}
public string Nome { get; }
//Quantidade variável para adaptar a quantidade de jogos.
private int Quantidade { get => ListaDeJogos.Count();
}
//Adiciona um jogo a lista.
public void AdicionarJogo(Jogos jogo)
{
ListaDeJogos.Add(jogo);
}
//Exibe o catalogo com todos os jogos de uma empresa específica.
public void ExibirCatalogo()
{
//Cabeçalho do texto.
Console.WriteLine($"Exibindo Catalogo da empresa: {this.Nome}");
Console.WriteLine($"Quantidade de jogos: {this.Quantidade}\n");
//Exibe as informações de cada jogo.
foreach (Jogos jogo in ListaDeJogos)
{
Console.WriteLine($"Nome do jogo: {jogo.Nome}");
Console.WriteLine($"Tema: {jogo.Tema}");
if (jogo.Preco == 0)
{
Console.WriteLine("Esse jogo possui unidades ilimitadas");
}
else
{
Console.WriteLine($"Preço: R${jogo.Preco}");
}
if (jogo.Unidades == 0)
{
Console.WriteLine("Esse jogo é gratuito");
}
else {
Console.WriteLine($"Unidades: {jogo.Unidades}");
}
Console.WriteLine("\n");
}
}
}
Program.cs
//Instâncias de jogos.
Jogos jogo1 = new Jogos("Elder Ring", "SoulsLike", 24, 300);
Jogos jogo2 = new Jogos("Dark Souls", "SoulsLike", 33, 120);
Jogos jogo3 = new Jogos("OverWatch 2","Tiro Competitivo");
//Adição de jogos à lista e exibição do catálogo completo.
CatalogoDeJogos catalogoFromSoftware = new CatalogoDeJogos("FromSoftWare");
catalogoFromSoftware.AdicionarJogo(jogo1);
catalogoFromSoftware.AdicionarJogo(jogo2);
catalogoFromSoftware.ExibirCatalogo();
//Adição de um jogo gratuito e com unidades ilimitadas.
CatalogoDeJogos catalogoBlizzard = new CatalogoDeJogos("Blizzard");
catalogoBlizzard.AdicionarJogo(jogo3);
catalogoBlizzard.ExibirCatalogo();
Espero que tenha gostado!