Пример #1
0
        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));
        }