Example #1
0
        static void Main(string[] args)
        {
            //Task 1
            Console.WriteLine("Task 1");
            var builder = new StringBuilder();

            builder.Append("This is a test");
            Console.WriteLine(builder.Substring(10, 4).ToString());
            //Task 2
            Console.WriteLine();
            Console.WriteLine("Task 2");
            var list = new List <int> {
                1, 2, 3, 4, 5
            };

            Console.WriteLine(IEnumerableExtensionMethods.Average(list));
            Console.WriteLine(IEnumerableExtensionMethods.Sum(list));
            Console.WriteLine(IEnumerableExtensionMethods.Product(list));
            Console.WriteLine(IEnumerableExtensionMethods.Min(list));
            //Task 3
            Console.WriteLine();
            Console.WriteLine("Task 3");
            var listOfStudents = new List <Student> {
                new Student("Ivan", "Petrov", "619501", "0285123285", "*****@*****.**", new List <double> {
                    2, 3, 5, 6, 2, 4, 5
                }, new Group(2, "Physics"), 20),
                new Student("Gosho", "Kirov", "120125", "0885168754", "*****@*****.**", new List <double> {
                    3, 3, 3, 3, 3, 5, 3
                }, new Group(2, "Mathematics"), 19),
                new Student("Pesho", "Pesheff", "748906", "0257231456", "*****@*****.**", new List <double> {
                    6, 6, 6, 6, 6
                }, new Group(2, "Philosophy"), 31),
                new Student("Tosho", "Gorgiev", "365406", "6553698523", "*****@*****.**", new List <double> {
                    2, 2, 2
                }, new Group(3, "Mathematics"), 22),
                new Student("Hassan", "Mehmedov", "458707", "0251236945", "*****@*****.**", new List <double> {
                    3, 4, 2, 5, 6, 2, 3
                }, new Group(4, "Mathematics"), 19)
            };
            var studentsWithFirstBeforeLast = from student in listOfStudents
                                              where student.FirstName.CompareTo(student.LastName) < 0
                                              select student;

            foreach (var student in studentsWithFirstBeforeLast)
            {
                Console.WriteLine(student);
            }
            //Task 4
            Console.WriteLine();
            Console.WriteLine("Task 4");
            var studentsWithAgeInInterval = from student in listOfStudents
                                            where student.Age > 17 && student.Age < 25
                                            select student;

            foreach (var student in studentsWithAgeInInterval)
            {
                Console.WriteLine(student);
            }
            //Task 5
            Console.WriteLine();
            Console.WriteLine("Task 5");
            var sortedStudents = listOfStudents.OrderBy(student => student.FirstName).ThenBy(student => student.LastName);

            foreach (var item in sortedStudents)
            {
                Console.WriteLine(item);
            }
            //Task 6
            Console.WriteLine();
            var numbers = new List <int> {
                1, 2, 3, 7, 49, 21, 42, 53, 222, 149
            };

            Console.WriteLine("With Lambda");
            DivisibleBy7And3WithLambda(numbers);
            Console.WriteLine("With LINQ");
            DivisibleBy7And3WithLINQ(numbers);
            //Task 7
            Console.WriteLine();
            Console.WriteLine("Task 8");
            var timer = new Timer(4, 3);

            timer.Invoke();
            //Task 9
            Console.WriteLine();
            Console.WriteLine("Task 9");
            var studentsFrom2Group = from student in listOfStudents
                                     where student.Group.GroupNumber == 2
                                     orderby student.FirstName
                                     select student;

            PrintCollection(studentsFrom2Group.ToList());
            //Task 10
            Console.WriteLine();
            Console.WriteLine("Task 10");
            var studentsFrom2 = listOfStudents
                                .Where(student => student.Group.GroupNumber == 2)
                                .OrderBy(student => student.FirstName)
                                .Select(student => student);

            PrintCollection(studentsFrom2.ToList());
            //Task 11
            Console.WriteLine();
            Console.WriteLine("Task 11");
            var studentsWithABV = from student in listOfStudents
                                  where student.Email.Contains("abv.bg")
                                  select student;

            PrintCollection(studentsWithABV.ToList());
            //Task 12
            Console.WriteLine();
            Console.WriteLine("Task 12");
            var sofiaMans = listOfStudents
                            .Where(student => student.Tel.Substring(0, 2) == "02")
                            .Select(student => student);

            PrintCollection(sofiaMans.ToList());
            //Task 13
            Console.WriteLine();
            Console.WriteLine("Task 13");
            var excellentStudents = listOfStudents
                                    .Where(student => student.Marks.Contains(6))
                                    .Select(s => new { FullName = string.Format("{0} {1}", s.FirstName, s.LastName), Marks = string.Join(" ", s.Marks.ToArray()) });

            PrintCollection(excellentStudents.ToList());

            //Taske 14
            Console.WriteLine();
            Console.WriteLine("Task 14");
            var badStudents = listOfStudents
                              .Where(student => student.Marks.Where(x => x == 2).ToList().Count == 2)
                              .Select(s => new { FullName = string.Format("{0} {1}", s.FirstName, s.LastName), Marks = string.Join(", ", s.Marks.ToArray()) });

            PrintCollection(badStudents.ToList());



            //Taskt 15
            Console.WriteLine();
            Console.WriteLine("Task 15");
            var marks = listOfStudents
                        .Where(student => student.FN.Substring(4, 2) == "06")
                        .Select(student => student.Marks);

            foreach (var item in marks)
            {
                PrintCollection(item);
                Console.WriteLine();
            }
            //Task 16
            Console.WriteLine();
            Console.WriteLine("Task 16");
            var mathematicians = listOfStudents
                                 .Where(student => student.Group.DepartmentName.Equals("Mathematics"))
                                 .Select(student => student.FirstName);

            Console.WriteLine(string.Join(", ", mathematicians));


            //Task 17
            Console.WriteLine();
            Console.WriteLine("Task 17");
            var strings = new List <string> {
                "I", "am", "a", "baaaad", "string", "array"
            };
            var longest = strings
                          .Where(s => s.Length == (strings
                                                   .Where(stringa => stringa.Length > 0)
                                                   .Select(stringa => stringa.Length).Max()))
                          .Select(s => s);

            PrintCollection(longest.ToList());

            //Task 18
            Console.WriteLine();
            Console.WriteLine("Task 18");
            var grouped = listOfStudents
                          .GroupBy(student => student.Group.GroupNumber)
                          .Select(student => student);

            foreach (var item in grouped)
            {
                Console.WriteLine("In Group:");
                PrintCollection(item.ToList());
                Console.WriteLine();
            }
        }