Пример #1
0
        static void Main()
        {
            Student st1 = new Student("Zlatin", "Dimitrov", 23, 727306, "323/3223213", "*****@*****.**", new List <int> {
                5
            }, new Group(2, Departments.History));
            Student st4 = new Student("Ivan", "Petrov", 44, 332106, "434/3243243", "*****@*****.**", new List <int> {
                6, 6, 5
            }, new Group(2, Departments.History));
            Student st2 = new Student("Pesho", "Petrov", 19, 555444, "02/975232323", "*****@*****.**", new List <int> {
                4, 3
            }, new Group(4, Departments.Matematics));
            Student st3 = new Student("Borislav", "Angelov", 25, 666333, "02/955343434", "*****@*****.**", new List <int> {
                5, 6
            }, new Group(3, Departments.Science));
            Student st5 = new Student("Georgi", "Ivanov", 24, 635906, "02/977498322", "*****@*****.**", new List <int> {
                6, 6
            }, new Group(4, Departments.Matematics));


            List <Student> students = new List <Student>();

            students.Add(st1);
            students.Add(st2);
            students.Add(st3);
            students.Add(st4);
            students.Add(st5);

            var newList = Student.FindAlphabeticOrder(students);

            Console.WriteLine("students whose first name is before its last name alphabetically.");
            Console.WriteLine("-----------------------------------------------------------------");
            foreach (var student in newList)
            {
                Console.WriteLine(student.ToString());
            }
            Console.WriteLine("============================================");


            var ageRange = Student.AgeRange(students);

            Console.WriteLine("Student who are between 18 and 24 years old.");
            Console.WriteLine("--------------------------------------------");
            foreach (var item in ageRange)
            {
                Console.WriteLine(item.ToString());
            }
            Console.WriteLine("===============================================================================");

            var orderedListOfStudentDescending = StudentsOrder.OrderTheStudents(students);

            Console.WriteLine("The student are now orderd by first name then by last name in descending order.");
            Console.WriteLine("-------------------------------------------------------------------------------");
            foreach (var item in orderedListOfStudentDescending)
            {
                Console.WriteLine(item.ToString());
            }
            Console.WriteLine("=======================================");
            //Create a List<Student> with sample students. Select only the students that are from group number 2.
            Console.WriteLine("The student in the Group with number 2.");
            Console.WriteLine("---------------------------------------");
            var groupTwo = students.Where(st => st.GroupNumber == 2);

            foreach (var item in groupTwo)
            {
                Console.WriteLine(item.ToString());
            }


            Console.WriteLine("=====================================================================");
            var orderGroupTwo =
                from st in groupTwo
                orderby(st.FirstName)
                select st;

            Console.WriteLine("The group with number 2 is now ordered by first name of the students.");
            Console.WriteLine("---------------------------------------------------------------------");
            foreach (var item in orderGroupTwo)
            {
                Console.WriteLine(item.ToString());
            }

            Console.WriteLine("=============================================");
            var grouped = StudentsOrder.ShowStudentsByGroupNumber(students, 4);

            Console.WriteLine("Group by group number using extension method.");
            Console.WriteLine("---------------------------------------------");
            foreach (var item in grouped)
            {
                Console.WriteLine(item.ToString());
            }

            Console.WriteLine("=========================================================");
            Console.WriteLine("Group by group number then by first name using ex method.");
            Console.WriteLine("---------------------------------------------------------");
            grouped = StudentsOrder.OrderStudentsByGroupNumber(students, 4);
            foreach (var item in grouped)
            {
                Console.WriteLine(item.ToString());
            }

            Console.WriteLine("======================================================");
            Console.WriteLine("Extract student with email in abv.bg or onather one...");
            Console.WriteLine("------------------------------------------------------");
            var byMail = StudentsOrder.ExtractStudentByDomain(students, "abv.bg");

            foreach (var item in byMail)
            {
                Console.WriteLine(item.ToString());
            }

            Console.WriteLine("====================================================");
            Console.WriteLine("Select the student with Phone number in Sofia \"02\"");
            Console.WriteLine("----------------------------------------------------");
            var byPhoneCode = StudentsOrder.ExtraxtByCityPhoneCode(students, "02");

            foreach (var item in byPhoneCode)
            {
                Console.WriteLine(item.ToString());
            }


            Console.WriteLine("========================================");
            Console.WriteLine("Extract student with mark excellent (6) ");
            Console.WriteLine("----------------------------------------");

            var excellents = (
                from st in students
                where st.Marks.Contains(6)
                select new
            {
                FullName = st.FirstName + " " + st.LastName,
                Marks = st.Marks
            }).ToList();

            excellents.ForEach(st => Console.WriteLine("{0} - {1}", st.FullName, string.Join(", ", st.Marks)));

            Console.WriteLine("========================");
            Console.WriteLine("Students with two marks.");
            Console.WriteLine("------------------------");

            var twoMarks = (
                from st in students
                where st.Marks.Count == 2
                select new
            {
                FullName = st.FirstName + " " + st.LastName,
                Marks = st.Marks
            }).ToList();

            twoMarks.ForEach(st => Console.WriteLine("{0} - {1}", st.FullName, string.Join(", ", st.Marks)));

            Console.WriteLine("========================================================");
            Console.WriteLine("Extract all Marks of the students that enrolled in 2006.");
            Console.WriteLine("--------------------------------------------------------");
            var marksIn2006 = (
                from st in students
                where (st.FN / 10) % 10 == 0 && st.FN % 10 == 6
                select new
            {
                FullName = st.FirstName + " " + st.LastName,
                Marks = st.Marks
            }).ToList();

            marksIn2006.ForEach(st => Console.WriteLine("{0} - {1}", st.FullName, string.Join(", ", st.Marks)));

            //Console.WriteLine("=========================gr");

            //var grouedByGroupNumber = (
            //    from st in students
            //    orderby st.Group.GroupNumber
            //    group st by st.Group.GroupNumber
            //    into groups
            //    select new
            //    {
            //        Group = groups.Key,
            //        Students = groups.ToList()
            //    })
            //    .ToList();
        }