public Lesson(Subject subject, Teacher teacher, List <Student> students)
 {
     Subject  = subject;
     Teacher  = teacher;
     Students = students;
 }
        public static void Main(string[] args)
        {
            DateTime runtimeStart = DateTime.Now;

            // Temporary - will import a file containing a list of students and teachers.

            Teacher[] teachers = new Teacher[] {
                new Teacher("Paul", new Subject.Type[] { Subject.Type.Mathematics, Subject.Type.Physics }),
                new Teacher("Kate", new Subject.Type[] { Subject.Type.Mathematics }),
                new Teacher("Kathy", new Subject.Type[] { Subject.Type.Mathematics }),
                new Teacher("Alex", new Subject.Type[] { Subject.Type.Computer_Science }),
                new Teacher("Chris", new Subject.Type[] { Subject.Type.Mathematics, Subject.Type.Computer_Science }),
                new Teacher("Rosie", new Subject.Type[] { Subject.Type.Physics }),
                new Teacher("Sarah", new Subject.Type[] { Subject.Type.Biology }),
                new Teacher("Rebecca", new Subject.Type[] { Subject.Type.Biology })
            };

            List <Student> students = new List <Student>();

            for (int i = 0; i < 10; i++)
            {
                students.Add(new Student(i.ToString(), new Subject.Type[] { Subject.Type.Computer_Science, Subject.Type.Mathematics, Subject.Type.Physics }));
            }
            for (int i = 0; i < 10; i++)
            {
                students.Add(new Student("1" + i.ToString(), new Subject.Type[] { Subject.Type.Biology, Subject.Type.Mathematics, Subject.Type.Physics }));
            }
            for (int i = 0; i < 10; i++)
            {
                students.Add(new Student("2" + i.ToString(), new Subject.Type[] { Subject.Type.Computer_Science, Subject.Type.Biology, Subject.Type.Physics }));
            }
            for (int i = 0; i < 10; i++)
            {
                students.Add(new Student("3" + i.ToString(), new Subject.Type[] { Subject.Type.Computer_Science, Subject.Type.Mathematics, Subject.Type.Biology }));
            }



            // Initialise the school.

            School school = new School(teachers, students.ToArray(), new Subject[] { new Subject(Subject.Type.Mathematics), new Subject(Subject.Type.Computer_Science), new Subject(Subject.Type.Biology), new Subject(Subject.Type.Physics) }, 20);



            // Logging.

            foreach (Subject subject in school.Subjects)
            {
                Console.WriteLine("{0} ({1} Teachers, {2} Students):\n", subject.Name, subject.Teachers.Count, subject.Students.Count);
                foreach (Teacher teacher in subject.Teachers)
                {
                    Console.WriteLine(teacher.Name);
                }
                foreach (Student student in subject.Students)
                {
                    Console.WriteLine(student.Name);
                }
                Console.WriteLine("\nLessons:");
                foreach (Lesson c in subject.Lessons)
                {
                    Console.WriteLine("{0} - {1}", c.Teacher.Name, c.Subject.Name);
                    foreach (Student student in c.Students)
                    {
                        Console.WriteLine(student.Name);
                    }
                }
                Console.WriteLine("\n");
            }



            // Sorting algorithm.

            /* [insert code] */



            // Print runtime length.

            Console.WriteLine("\n\nRuntime: {0} ms", (DateTime.Now.Ticks - runtimeStart.Ticks) / TimeSpan.TicksPerMillisecond);
        }