Olá, Paulo. Tudo bem?
O erro acontece porque as listas alunos e professores na classe Disciplina são privadas (private), então não podem ser acessadas diretamente de fora da classe.
Para resolver isso, torne essas listas públicas ou forneça métodos para adicionar alunos e professores. Veja como ajustar:
class Disciplina
{
public string NomeDaDisciplina { get; set; }
public List Alunos { get; } = new List();
public List Professores { get; } = new List();
public void AdicionarAluno(Alunos aluno)
{
Alunos.Add(aluno);
}
public void AdicionarProfessor(Professor professor)
{
Professores.Add(professor);
}
}
Agora, no seu código principal, utilize os métodos para adicionar os objetos:
Disciplina disciplina = new Disciplina();
disciplina.NomeDaDisciplina = "Matemática";
disciplina.AdicionarAluno(aluno1);
disciplina.AdicionarAluno(aluno2);
disciplina.AdicionarProfessor(professor1);
disciplina.AdicionarProfessor(professor2);
foreach (var aluno in disciplina.Alunos)
{
Console.WriteLine($"Nome: {aluno.Nome}");
Console.WriteLine($"Idade: {aluno.Idade}");
Console.WriteLine($"Nota: {aluno.Nota}");
Console.WriteLine();
}
Dessa forma, o código funcionará corretamente sem erros de acesso.
Fico à disposição. Abraços e bons estudos!