static void Main(string[] args) { //Problem 9. Student groups Student s1 = new Student("Noe", "Aionesei", 123406, 0700225588, "*****@*****.**", 2); s1.AddMark(9.5); s1.AddMark(8); s1.AddMark(6); s1.AddMark(10); Student s2 = new Student("Diana", "Balea", 543212, 0722991177, "*****@*****.**", 1); s2.AddMark(6); s2.AddMark(7); s2.AddMark(10); s2.AddMark(10); Student s3 = new Student("Alex", "Constantin", 987406, 0711232323, "*****@*****.**", 1); s3.AddMark(2); s3.AddMark(8.5); s3.AddMark(2); s3.AddMark(9); Student s4 = new Student("Sia", "Naomi", 939316, 0722667722, "*****@*****.**", 2); s4.AddMark(8); s4.AddMark(6); s4.AddMark(10); s4.AddMark(9); var listaStudenti = new List <Student>(); listaStudenti.Add(s1); listaStudenti.Add(s2); listaStudenti.Add(s3); listaStudenti.Add(s4); foreach (var stud in listaStudenti) { stud.PrintStudentDetails(); } var queryGroupNumber = listaStudenti.FindAll(s => s.GroupNumber == 2); foreach (var stud in queryGroupNumber) { stud.PrintStudentDetails(); } var queryFirstName = from stud in listaStudenti orderby stud.FirstName select stud; foreach (var stud in queryFirstName) { stud.PrintStudentDetails(); } //Problem 13. Extract students by marks var queryMark = from stud in listaStudenti where stud.Marks.Contains(6) select stud; foreach (var stud in queryMark) { stud.PrintStudentDetails(); } //Problem 14. Extract students with two marks var queryMarks = listaStudenti.FindAll(x => x.Marks.Count(y => y == 2) == 2); foreach (var stud in queryMarks) { stud.PrintStudentDetails(); } //Problem 15. Extract marks Console.WriteLine($"All Marks of the students that enrolled in 2006 : "); var queryEnrolled = from stud in listaStudenti where stud.FN.ToString().EndsWith("06") select stud; foreach (var stud in queryEnrolled) { stud.PrintStudentDetails(); } //Problem 18. Grouped by GroupNumber Console.WriteLine($"All the students from group 1 : "); var queryFirstGroup = from stud in listaStudenti where stud.GroupNumber.Equals(1) select stud; foreach (var stud in queryFirstGroup) { stud.PrintStudentDetails(); } Console.WriteLine($"-------------------------------"); Console.WriteLine($"All the students from group 2 : "); var querySecondGroup = from stud in listaStudenti where stud.GroupNumber.Equals(2) select stud; foreach (var stud in querySecondGroup) { stud.PrintStudentDetails(); } Console.ReadKey(); }
static void Main() { Student[] studentsArray = new Student[] { new Student("Gosho", "Toshev", "111106", "027734565", "*****@*****.**", new List<int> {6,5,3}, 1), new Student("Dimitar", "Vasilev", "22222", "0894445566", "*****@*****.**", new List<int> {2,2,4}, 2), new Student("Vasil", "Dimitrov", "333306", "085552221", "*****@*****.**", new List<int> {4,6,6}, 1), new Student("Jeliazko", "Momchilov", "44444", "029990033", "*****@*****.**", new List<int> {5,5}, 2), new Student("Damyan", "Petrov", "555506", "0877788665", "*****@*****.**", new List<int> {3,4,6}, 1)}; var SecondGroup = studentsArray.Where(student => student.GroupNumber == 2).OrderBy(student => student.FirstName); foreach (var student in SecondGroup) { Console.WriteLine(student.FirstName + " " + student.LastName); } Console.WriteLine(new string('=', 30)); var LINQSecondGroup = from student in studentsArray where student.GroupNumber == 2 orderby student.FirstName select student; foreach (var student in LINQSecondGroup) { Console.WriteLine(student.FirstName + " " + student.LastName); } Console.WriteLine(new string('=', 30)); //var StudentsByEmail = // studentsArray.Where(student => student.Email.Contains("@abv.bg")); var StudentsByEmail = from student in studentsArray where student.Email.Contains("@abv.bg") select student; foreach (var student in StudentsByEmail) { Console.WriteLine(student.FirstName + " " + student.LastName); } Console.WriteLine(new string('=', 30)); //var TelsInSofia = // studentsArray.Where(student => student.Tel.StartsWith("02")); var TelsInSofia = from student in studentsArray where student.Tel.StartsWith("02") select student; foreach (var student in TelsInSofia) { Console.WriteLine(student.FirstName + " " + student.LastName); } Console.WriteLine(new string('=', 30)); var StudentsByMark = from student in studentsArray where student.Marks.Contains(6) select new { FullName = student.FirstName + " " + student.LastName, Marks = student.Marks }; foreach (var student in StudentsByMark) { Console.WriteLine(student.FullName); } Console.WriteLine(new string('=', 30)); var StudentsTwoMarks = studentsArray.Where(student => student.Marks.FindAll(m => m == 2).Count == 2) .Select(student => new { FullName = student.FirstName + " " + student.LastName, Marks = student.Marks }); foreach (var student in StudentsTwoMarks) { Console.WriteLine(student.FullName); } Console.WriteLine(new string('=', 30)); var MarksOf2006Students = from student in studentsArray where student.FN[4] == '0' && student.FN[5] == '6' select student; List<int> marks = new List<int>(); foreach (var student in MarksOf2006Students) { marks.AddRange(student.Marks); } Console.WriteLine(string.Join(", ", marks)); }