Загрузка данных


Teachers[] teachers = new[]
{
    new Teachers
    {
        IdTeacher = "008",
        Name = "Петров Иван Сергеевич",
        Post = "Преподаватель кафедры информационных технологий"
    },
    new Teachers
    {
        IdTeacher = "010",
        Name = "Соколова Анна Викторовна",
        Post = "Преподаватель кафедры рекламы"
    },
    new Teachers
    {
        IdTeacher = "014",
        Name = "Кузнецов Дмитрий Олегович",
        Post = "Преподаватель кафедры архитектуры"
    },
    new Teachers
    {
        IdTeacher = "022",
        Name = "Васильева Мария Игоревна",
        Post = "Преподаватель кафедры юридических дисциплин"
    },
    new Teachers
    {
        IdTeacher = "016",
        Name = "Федоров Алексей Павлович",
        Post = "Преподаватель кафедры менеджмента, туризма и иностранных языков"
    }
};

GetAverageByGroup(studentsInGroup);

GetGroupStudents(studentsInGroup);
GetStudentsTeachers(studentsInGroup, teachers);

// 6. Все студенты, сгруппированные по группам
static void GetGroupStudents(Students[] studentsInGroup)
{
    Console.WriteLine("\nСтуденты, сгруппированные по группам:");

    var groups = from p in studentsInGroup
                 group p by p.Group;

    foreach (var g in groups)
    {
        Console.WriteLine($"\nГруппа: {g.Key}");

        foreach (var student in g)
        {
            Console.WriteLine("- {0}", student.Name);
        }
    }
}

// 7. ФИО студента и его группа + ФИО и должность руководителя (join)
static void GetStudentsTeachers(Students[] studentsInGroup, Teachers[] teachers)
{
    Console.WriteLine("\nСтуденты и их научные руководители:");

    var result = from s in studentsInGroup
                 join t in teachers
                 on s.IdTeacher equals t.IdTeacher
                 select new
                 {
                     StudentName = s.Name,
                     StudentGroup = s.Group,
                     TeacherName = t.Name,
                     TeacherPost = t.Post
                 };

    foreach (var item in result)
    {
        Console.WriteLine(
            "- Студент: {0}, группа {1}\n  Руководитель: {2}, должность: {3}\n",
            item.StudentName,
            item.StudentGroup,
            item.TeacherName,
            item.TeacherPost
        );
    }
}