Выборка элементов

Есть сформированые списки

        subjects.Adding(new Subject() { ID = 1, Lesson = "Physics", Teacher = "Leshchenko O.M.", Hours = 5 });
        subjects.Adding(new Subject() { ID = 2, Lesson = "Physics", Teacher = "Fedotov V.V.", Hours = 5});
        subjects.Adding(new Subject() { ID = 3, Lesson = "Physics", Teacher = "Ignatenko О.М", Hours = 8});
        subjects.Adding(new Subject() { ID = 4, Lesson = "Physics", Teacher = "Grom O.D.", Hours = 8});
        subjects.Adding(new Subject() { ID = 5, Lesson = "Math", Teacher = "Zhurakovskiy V.A.", Hours = 9});
        subjects.Adding(new Subject() { ID = 6, Lesson = "Math", Teacher = "Bryzhnik O.M.", Hours = 5 });
        subjects.Adding(new Subject() { ID = 7, Lesson = "Math", Teacher = "Bryzhnik O.M.", Hours = 5});
        subjects.Adding(new Subject() { ID = 8, Lesson = "Programming", Teacher = "Bryzhnik O.M.", Hours = 5});
        subjects.Adding(new Subject() { ID = 9, Lesson = "Programming", Teacher = "Bryzhnik.", Hours = 5});
        subjects.Adding(new Subject() { ID = 10, Lesson = "OOS", Teacher = "Bryzhnik.", Hours = 5});
        audiences.Adding(new Room() { ID = 1, Number = 102, Lesson = "Physics", Type = "lecture", Flow = "ИС" });
        audiences.Adding(new Room() { ID = 2, Number = 107, Lesson = "Programming", Type = "lecture", Flow = "ИС" });
        audiences.Adding(new Room() { ID = 3, Number = 112, Lesson = "OOS", Type = "lecture", Flow = "ИС" });
        audiences.Adding(new Room() { ID = 4, Number = 115, Lesson = "Physics", Type = "practice", Flow = "ИС" });

И все данные окончательно заносятся по индексам сюда

        planner.Adding(new Plan() { ID = 1, Day = "Monday", GroupID = 1, AudienceID = 3, SubjectID = 1 });
        planner.Adding(new Plan() { ID = 2, Day = "Monday", GroupID = 1, AudienceID = 4, SubjectID = 2 });
        planner.Adding(new Plan() { ID = 3, Day = "Monday", GroupID = 1, AudienceID = 2, SubjectID = 8 });

Выборку произвожу так

        Console.WriteLine("Choose a day");
        var day = Console.ReadLine();
        Console.WriteLine("Choose a group");
        var groupid = Convert.ToInt32(Console.ReadLine());

        var list = planner.FindAll()
            .Where(x => x.Day == day && x.GroupID == groupid)
            .Select(x => groups.FindByID(x.GroupID));
        var uniques = list.GroupBy(x => x).Select(y => y.First());
        foreach (var group in uniques)
        {
            Console.WriteLine($"{group.Flow} - {group.GroupNum}");
        }
        var lessons = planner.FindAll()
            .Where(x => x.Day == day && x.GroupID == groupid)
            .Select(x => subjects.FindByID(x.SubjectID));

        var roomss = planner.FindAll()
            .Where(x => x.Day == day && x.GroupID == groupid )
            .Select(x => audiences.FindByID(x.AudienceID));

Но вот так как список roomss содержит все элементы выбраны по дню и группе, то при попытке вывести их как предусмотрено в планере не могу. Вопрос такой как,например, вывести предметы с ID = 1 и чтоб за ними подтягивалась их аудитория с ID = 3.


Ответы (0 шт):