So far, this decision has been realized - it gives the number of those who are not succeeding:
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { List<Student> students = new List<Student> { new Student { ID = 0 }, new Student { ID = 1 }, new Student { ID = 2 }, new Student { ID = 3 }, new Student { ID = 4 }, new Student { ID = 5 }, new Student { ID = 6 }, new Student { ID = 7 }, new Student { ID = 8 }, new Student { ID = 9 } }; List<Mark> marks = new List<Mark> { new Mark { ID_Studenta = 0, Itog = 41 }, new Mark { ID_Studenta = 0, Itog = 48 }, new Mark { ID_Studenta = 0, Itog = 43 }, new Mark { ID_Studenta = 1, Itog = 40 }, new Mark { ID_Studenta = 1, Itog = 41 }, new Mark { ID_Studenta = 1, Itog = 28 }, new Mark { ID_Studenta = 2, Itog = 50 }, new Mark { ID_Studenta = 2, Itog = 55 }, new Mark { ID_Studenta = 2, Itog = 59 }, new Mark { ID_Studenta = 3, Itog = 30 }, new Mark { ID_Studenta = 3, Itog = 29 }, new Mark { ID_Studenta = 3, Itog = 36 }, new Mark { ID_Studenta = 4, Itog = 48 }, new Mark { ID_Studenta = 4, Itog = 46 }, new Mark { ID_Studenta = 4, Itog = 42 }, new Mark { ID_Studenta = 5, Itog = 41 }, new Mark { ID_Studenta = 5, Itog = 40 }, new Mark { ID_Studenta = 5, Itog = 43 }, new Mark { ID_Studenta = 6, Itog = 39 }, new Mark { ID_Studenta = 6, Itog = 42 }, new Mark { ID_Studenta = 6, Itog = 46 }, new Mark { ID_Studenta = 7, Itog = 30 }, new Mark { ID_Studenta = 7, Itog = 30 }, new Mark { ID_Studenta = 7, Itog = 50 }, new Mark { ID_Studenta = 8, Itog = 45 }, new Mark { ID_Studenta = 8, Itog = 46 }, new Mark { ID_Studenta = 8, Itog = 49 }, new Mark { ID_Studenta = 9, Itog = 40 }, new Mark { ID_Studenta = 9, Itog = 38 }, new Mark { ID_Studenta = 9, Itog = 48 } }; int c = students.Join(marks, s => s.ID, m => m.ID_Studenta, (s, m) => new { id = s.ID, itog = m.Itog }) .Where(a => a.itog < 41) .GroupBy(a => a.id) .Count(); Console.WriteLine(c); } } class Student { public long ID { get; set; } } class Mark { public long ID_Studenta { get; set; } public int Itog { get; set; } }
A more competent solution could be given to you by SQL specialists. Perhaps you should add such a label here.