Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Student s1  = new Student("Andrew", "Troelsen", 25);
            Student s2  = new Student("Alex", "Lafrok", 18);
            Student s3  = new Student("Anna", "Jordan", 20);
            Student s4  = new Student("Inna", "Gizmos", 15);
            Student s5  = new Student("Kate", "Sven", 29);
            Student s6  = new Student("John", "Maxfil", 19);
            Student s7  = new Student("Max", "Volterin", 33);
            Student s8  = new Student("Shone", "Zumberg", 23);
            Student s9  = new Student("Martin", "Lalakopt", 27);
            Student s10 = new Student("Bill", "Canbeam", 17);

            List <Student> students = new List <Student>()
            {
                s1, s2, s3, s4, s5, s6, s7, s8, s9, s10
            };

            StudentPredicateDelegate myDelegate = Student.isFirstName;

            myDelegate += Student.isLastName;
            myDelegate += Student.isAge;

            List <Student> task8 = students.FindStudent(myDelegate);

            Console.WriteLine("task 8:");
            task8.ShowOnScreen();

            List <Student> task9 = students.FindStudent(
                new StudentPredicateDelegate(
                    student => student.Age >= 18 && student.FirstName[0] == 'A' && student.LastName.Length > 3
                    ));

            Console.WriteLine("task 9:");
            task9.ShowOnScreen();

            List <Student> task10 = students.FindStudent(
                new StudentPredicateDelegate(
                    student => student.Age >= 20 && 25 >= student.Age
                    ));

            Console.WriteLine("task 10:");
            task10.ShowOnScreen();

            List <Student> task11 = students.FindStudent(
                new StudentPredicateDelegate(
                    student => student.FirstName == "Andrew"
                    ));

            Console.WriteLine("task 11:");
            task11.ShowOnScreen();

            List <Student> task12 = students.FindStudent(
                new StudentPredicateDelegate(
                    student => student.LastName == "Troelsen"
                    ));

            Console.WriteLine("task 11:");
            task12.ShowOnScreen();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            List <Student> Student_List = new List <Student>();
            List <Student> Result_List  = new List <Student>();

            Student_List.Add(new Student("Vania", "Petrenko", 17));
            Student_List.Add(new Student("Kiril", "Danilenko", 19));
            Student_List.Add(new Student("Vadim", "Petruk", 18));
            Student_List.Add(new Student("Anna", "Klimenuk", 18));
            Student_List.Add(new Student("Andrew", "Petrath", 16));
            Student_List.Add(new Student("Ilia", "Makosiy", 17));
            Student_List.Add(new Student("Vasia", "Petrovich", 16));
            Student_List.Add(new Student("Anton", "Berezeckiy", 20));
            Student_List.Add(new Student("Yaroslav", "Troeslen", 25));
            Student_List.Add(new Student("Yaroslav", "Tarasenko", 25));
            Student_List.Add(new Student("Petro", "Bojko", 25));

            StudentPredicateDelegate check = Student.Check_Last_Name;

            Result_List = Student_List.FindStudent(check);
            Result_List.Show_List();

            check       = Student.Check_First_Name;
            Result_List = Student_List.FindStudent(check);
            Result_List.Show_List();

            check       = Student.Check_Age;
            Result_List = Student_List.FindStudent(check);
            Result_List.Show_List();

            check       = (s) => s.Age >= 18;
            Result_List = Student_List.FindStudent(check);
            Result_List.Show_List();

            check       = (s) => s.FirstName[0] == 'A';
            Result_List = Student_List.FindStudent(check);
            Result_List.Show_List();

            check       = (s) => s.LastName.Length > 3;
            Result_List = Student_List.FindStudent(check);
            Result_List.Show_List();


            check       = (s) => s.Age > 20 && s.Age <= 25;
            Result_List = Student_List.FindStudent(check);
            Result_List.Show_List();


            check       = (s) => s.FirstName == "Andrew";
            Result_List = Student_List.FindStudent(check);
            Result_List.Show_List();


            check       = (s) => s.LastName == "Troeslen";
            Result_List = Student_List.FindStudent(check);
            Result_List.Show_List();
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            List <Student> group = new List <Student>();

            group.Add(new Student("Axel", "Troelsen", 16));
            group.Add(new Student("Kira", "Noy", 18));
            group.Add(new Student("Sergey", "Bekov", 21));
            group.Add(new Student("Yana", "Zol", 15));
            group.Add(new Student("Dan", "Kekoranikadze", 14));
            group.Add(new Student("Andrew", "Temin", 13));
            group.Add(new Student("Anton", "Yamen", 20));
            group.Add(new Student("Anya", "Hik", 24));
            group.Add(new Student("ARA", "Kove", 34));
            group.Add(new Student("Sidr", "Love", 17));

            StudentPredicateDelegate Find = Student.IsAdult;

            Find += Student.IsFirstNameA;
            Find += Student.IsLastNamelong;


            foreach (Student el in group.FindStudent(Find))
            {
                Student.Info(el);
            }
            Console.WriteLine("\n");

            StudentPredicateDelegate FindAndrew = (Student person) => (person.FirstName == "Andrew");

            foreach (Student el in group.FindStudent(FindAndrew))
            {
                Student.Info(el);
            }
            Console.WriteLine("\n");


            StudentPredicateDelegate FindTwenty = (Student person) => (person.Age >= 20 && person.Age <= 25);

            foreach (Student el in group.FindStudent(FindTwenty))
            {
                Student.Info(el);
            }
            Console.WriteLine("\n");


            StudentPredicateDelegate FindTroelsen = (Student person) => (person.LastName == "Troelsen");

            foreach (Student el in group.FindStudent(FindTroelsen))
            {
                Student.Info(el);
            }
            Console.WriteLine("\n");


            Console.Read();
        }
Exemplo n.º 4
0
        public static List <Student> FindStudent(this List <Student> list, StudentPredicateDelegate studentPredicateDelegate)
        {
            List <Student> Result = new List <Student>();

            foreach (Student student in list)
            {
                if (studentPredicateDelegate.Invoke(student))
                {
                    Result.Add(student);
                }
            }
            return(Result);
        }
Exemplo n.º 5
0
        public static List <Student> FindStudent(this List <Student> students, StudentPredicateDelegate studentPredicateDelegate)
        {
            List <Student> temp = new List <Student>();

            foreach (Student student in students)
            {
                if (studentPredicateDelegate.Invoke(student))
                {
                    temp.Add(student);
                }
            }
            return(temp);
        }
Exemplo n.º 6
0
        public static List <Student> FindStudent(this List <Student> students, StudentPredicateDelegate Check_Student)
        {
            List <Student> result = new List <Student>();

            foreach (Student l in students)
            {
                if (Check_Student(l))
                {
                    result.Add(l);
                }
            }
            return(result);
        }
Exemplo n.º 7
0
        public static List <Student> FindStudent(Student student, StudentPredicateDelegate studentPredicateDelegate)
        {
            List <Student> students = new List <Student>();
            bool           temp     = studentPredicateDelegate(student);

            if (temp)
            {
                students.Add(student);
            }


            return(students);
        }
Exemplo n.º 8
0
        public static List <Student> Find_student(this List <Student> list, StudentPredicateDelegate something)
        {
            List <Student> Listik = new List <Student>();

            foreach (Student el in list)
            {
                if (something.Invoke(el))
                {
                    Listik.Add(el);
                }
            }
            return(Listik);
        }
Exemplo n.º 9
0
        public static List <Student> FindStudent(this List <Student> list, StudentPredicateDelegate delegats)
        {
            List <Student> List = new List <Student>();

            foreach (Student i in list)
            {
                if (delegats.Invoke(i))
                {
                    List.Add(i);
                }
            }
            return(List);
        }
Exemplo n.º 10
0
        public static List <Student> FindStudent(this List <Student> student, StudentPredicateDelegate studentDelegate)
        {
            List <Student> newStudentList = new List <Student>();

            for (int i = 0; i < 10; i++)
            {
                if (studentDelegate(student[i]))
                {
                    newStudentList.Add(student[i]);
                }
            }
            return(newStudentList);
        }
Exemplo n.º 11
0
        public static List <Student> FindStudent(this List <Student> list, StudentPredicateDelegate spd)
        {
            List <Student> reqList = new List <Student>();

            foreach (Student st in list)
            {
                if (spd.Invoke(st))
                {
                    reqList.Add(st);
                }
            }
            return(reqList);
        }
Exemplo n.º 12
0
        public static List <Student> FindStudent(this List <Student> students, StudentPredicateDelegate studentPredicate)
        {
            var newStudents = new List <Student>();

            foreach (var student in students)
            {
                if (studentPredicate(student))
                {
                    newStudents.Add(student);
                }
            }

            return(newStudents);
        }
Exemplo n.º 13
0
        public static List <Student> FindStudent(this List <Student> students, StudentPredicateDelegate @delegate)
        {
            List <Student> result = new List <Student>();

            foreach (Student st in students)
            {
                if (@delegate.Invoke(st))
                {
                    result.Add(st);
                }
            }

            return(result);
        }
Exemplo n.º 14
0
        // 5
        public static List <Student> FindStudent(this List <Student> List, StudentPredicateDelegate del)
        {
            // 6
            List <Student> temp = new List <Student>();

            foreach (Student i in List)
            {
                if (del(i))
                {
                    temp.Add(i);
                }
            }

            return(temp);
        }
Exemplo n.º 15
0
        public static List <Student> FindStudent(this List <Student> students, StudentPredicateDelegate studentPredicateDelegate)
        {
            //StudentPredicateDelegate del1 = Student.AgeMore18;
            //StudentPredicateDelegate del2 = Student.IsFirstLetterA;
            //StudentPredicateDelegate del3 = Student.IsLastNameMoreThanThreeSymbols;
            List <Student> sortList = new List <Student>();

            for (int i = 0; i < students.Count; i++)
            {
                if (studentPredicateDelegate(students[i]))
                {
                    sortList.Add(students[i]);
                }
            }
            return(sortList);
        }
Exemplo n.º 16
0
        public static List <Student> FindStudent(this List <Student> InStudents, StudentPredicateDelegate Pred)
        {
            if (InStudents.Count > 0)
            {
                List <Student> OutStudents = new List <Student>();

                for (int i = 0; i < InStudents.Count; ++i)
                {
                    if (Pred != null && Pred.Invoke(InStudents[i]))
                    {
                        OutStudents.Add(InStudents[i]);
                    }
                }
                return(OutStudents);
            }
            return(null);
        }
Exemplo n.º 17
0
        public static List <Student> FindStudent(this List <Student> listSt)
        {
            StudentPredicateDelegate sDeleg1 = Student.Adult;
            StudentPredicateDelegate sDeleg2 = Student.Name;
            StudentPredicateDelegate sDeleg3 = Student.NameLength;

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

            for (int i = 0; i < listSt.Count; i++)
            {
                if (sDeleg1(listSt[i]) && sDeleg2(listSt[i]) && sDeleg3(listSt[i]))
                {
                    sortListSt.Add(listSt[i]);
                }
            }

            return(sortListSt);
        }
Exemplo n.º 18
0
        public static List <Student> FindStudent(this List <Student> listStud)
        {
            StudentPredicateDelegate Stud_Deleg_1 = Student.Age_Value;
            StudentPredicateDelegate Stud_Deleg_2 = Student.FirstName_Value;
            StudentPredicateDelegate Stud_Deleg_3 = Student.LastName_Value;


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

            for (int i = 0; i < listStud.Count; i++)
            {
                if (Stud_Deleg_1(listStud[i]) && Stud_Deleg_2(listStud[i]) && Stud_Deleg_3(listStud[i]))
                {
                    Sort_List_Stud.Add(listStud[i]);
                }
            }

            return(Sort_List_Stud);
        }
Exemplo n.º 19
0
        public static List <Student> FindStudent(this List <Student> listSt)
        {
            StudentPredicateDelegate sDeleg1 = Student.AgeCheck;
            StudentPredicateDelegate sDeleg2 = Student.FirstNameCheck;
            StudentPredicateDelegate sDeleg3 = Student.LastNameCheck;

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

            for (int i = 0; i < listSt.Count; i++)
            {
                if (sDeleg1(listSt[i]) && sDeleg2(listSt[i]) && sDeleg3(listSt[i]))
                {
                    sortListSt.Add(listSt[i]);
                }
                //sortListSt.Add(sDeleg1(listSt[i])? listSt[i]:null);
            }

            return(sortListSt);
        }
Exemplo n.º 20
0
        public static List <Student> FindStudent(this List <Student> list, StudentPredicateDelegate requirementlist)
        {
            List <Student> newlist = new List <Student>();

            foreach (Student person in list)
            {
                bool check = true;
                foreach (StudentPredicateDelegate req in requirementlist.GetInvocationList())
                {
                    check = req(person) && check;
                }

                if (check)
                {
                    newlist.Add(person);
                }
            }
            return(newlist);
        }
Exemplo n.º 21
0
        public static List <CharacteristicStudent> FindStudent(this List <CharacteristicStudent> students, StudentPredicateDelegate studentGroup)
        {
            List <CharacteristicStudent> studentsResult = new List <CharacteristicStudent>();

            foreach (CharacteristicStudent student in students)
            {
                if (studentGroup.Invoke(student))
                {
                    studentsResult.Add(student);
                }
            }
            return(studentsResult);
        }
Exemplo n.º 22
0
        static void Main(string[] args)
        {
            // 7
            List <Student> Students = new List <Student>();

            Student num1  = new Student("Anthony", "Hopkins", 82);
            Student num2  = new Student("Andrew", "Garfield", 37);
            Student num3  = new Student("Scarlett", "Johansson", 36);
            Student num4  = new Student("Robert", "Downey", 55);
            Student num5  = new Student("Anya", "Taylor-Joy", 24);
            Student num6  = new Student("Chris", "Hemsworth", 37);
            Student num7  = new Student("Bruce", "Lee", 80);
            Student num8  = new Student("Sophia ", "Lillis", 16);
            Student num9  = new Student("Andrew", "Lloyd Webber", 72);
            Student num10 = new Student("Julian", "Dennison", 15);

            Students.Add(num1);
            Students.Add(num2);
            Students.Add(num3);
            Students.Add(num4);
            Students.Add(num5);
            Students.Add(num6);
            Students.Add(num7);
            Students.Add(num8);
            Students.Add(num9);
            Students.Add(num10);

            // 8
            StudentPredicateDelegate age = Student.Adult;
            List <Student>           newListOfStudents = Students.FindStudent(age);

            Console.WriteLine("Added adult students:\n");
            if (newListOfStudents.Count == 0)
            {
                Console.WriteLine("\tNot found!\n");
            }
            else
            {
                foreach (Student i in newListOfStudents)
                {
                    i.StudentInfo();
                }
                newListOfStudents.Clear();
                Console.WriteLine();
            }
            // 8
            StudentPredicateDelegate name = Student.AisFirstLetterOfFirstName;

            newListOfStudents = Students.FindStudent(name);

            Console.WriteLine("Added students with A as a first letter of their name:\n");
            if (newListOfStudents.Count == 0)
            {
                Console.WriteLine("\tNot found!\n");
            }
            else
            {
                foreach (Student i in newListOfStudents)
                {
                    i.StudentInfo();
                }
                newListOfStudents.Clear();
                Console.WriteLine();
            }
            // 8
            StudentPredicateDelegate surname = Student.MoreThan3LettersInLastName;

            newListOfStudents = Students.FindStudent(surname);

            Console.WriteLine("Добавлены ученики, у которых в фамилии больше трех букв:\n");
            if (newListOfStudents.Count == 0)
            {
                Console.WriteLine("\tТаких нет!\n");
            }
            else
            {
                foreach (Student i in newListOfStudents)
                {
                    i.StudentInfo();
                }
                newListOfStudents.Clear();
            }

            Console.WriteLine("\n\t---To see task with anonymous functions press any key---");
            Console.ReadKey();
            Console.Clear();

            // 9
            StudentPredicateDelegate2 age2 = delegate(List <Student> List)
            {
                List <Student> temp = new List <Student>();

                foreach (Student i in List)
                {
                    if (Student.Adult(i))
                    {
                        temp.Add(i);
                    }
                }

                return(temp);
            };

            newListOfStudents = age2(Students);

            Console.WriteLine("Добавлены ученики, анонимными функциями:\n");
            if (newListOfStudents.Count == 0)
            {
                Console.WriteLine("\tТаких нет!\n");
            }
            else
            {
                foreach (Student i in newListOfStudents)
                {
                    i.StudentInfo();
                }
                newListOfStudents.Clear();
                Console.WriteLine();
            }
            // 9
            StudentPredicateDelegate2 name2 = delegate(List <Student> List)
            {
                List <Student> temp = new List <Student>();

                foreach (Student i in List)
                {
                    if (Student.AisFirstLetterOfFirstName(i))
                    {
                        temp.Add(i);
                    }
                }

                return(temp);
            };

            newListOfStudents = name2(Students);

            Console.WriteLine("Добавлены ученики,первая буква имени начинается на А, анонимные функции:\n");
            if (newListOfStudents.Count == 0)
            {
                Console.WriteLine("\tТаких нет!\n");
            }
            else
            {
                foreach (Student i in newListOfStudents)
                {
                    i.StudentInfo();
                }
                newListOfStudents.Clear();
                Console.WriteLine();
            }
            //TASK 9
            StudentPredicateDelegate2 surname2 = delegate(List <Student> List)
            {
                List <Student> temp = new List <Student>();

                foreach (Student i in List)
                {
                    if (Student.MoreThan3LettersInLastName(i))
                    {
                        temp.Add(i);
                    }
                }

                return(temp);
            };

            newListOfStudents = surname2(Students);

            Console.WriteLine("Добавлены ученики, у которых в фамилии больше трех букв, анонимные функции:\n");
            if (newListOfStudents.Count == 0)
            {
                Console.WriteLine("\tТаких нет!\n");
            }
            else
            {
                foreach (Student i in newListOfStudents)
                {
                    i.StudentInfo();
                }
                newListOfStudents.Clear();
                Console.WriteLine();
            }
            //TASK 10
            StudentPredicateDelegate2 age20_25 = delegate(List <Student> List)
            {
                List <Student> temp = new List <Student>();

                foreach (Student i in List)
                {
                    if (i.Age >= 20 && i.Age <= 25)
                    {
                        temp.Add(i);
                    }
                }

                return(temp);
            };

            newListOfStudents = age20_25(Students);

            Console.WriteLine("Добавлены ученики возрастом от 20 до 25:\n");
            if (newListOfStudents.Count == 0)
            {
                Console.WriteLine("\tТаких нет!\n");
            }
            else
            {
                foreach (Student i in newListOfStudents)
                {
                    i.StudentInfo();
                }
                newListOfStudents.Clear();
                Console.WriteLine();
            }
            // 11
            StudentPredicateDelegate2 nameAndrew = delegate(List <Student> List)
            {
                List <Student> temp = new List <Student>();

                foreach (Student i in List)
                {
                    if (i.FirstName == "Andrew")
                    {
                        temp.Add(i);
                    }
                }

                return(temp);
            };

            newListOfStudents = nameAndrew(Students);

            Console.WriteLine("Добавлен ученик с именем Andrew:\n");
            if (newListOfStudents.Count == 0)
            {
                Console.WriteLine("\tТаких нет!\n");
            }
            else
            {
                foreach (Student i in newListOfStudents)
                {
                    i.StudentInfo();
                }
                newListOfStudents.Clear();
                Console.WriteLine();
            }
            // 12
            StudentPredicateDelegate2 surnameTroelsen = delegate(List <Student> List)
            {
                List <Student> temp = new List <Student>();

                foreach (Student i in List)
                {
                    if (i.LastName == "Troelsen")
                    {
                        temp.Add(i);
                    }
                }

                return(temp);
            };

            newListOfStudents = surnameTroelsen(Students);

            Console.WriteLine("Добавлен ученик с фамилией Troelsen:\n");
            if (newListOfStudents.Count == 0)
            {
                Console.WriteLine("\tТаких нет!\n");
            }
            else
            {
                foreach (Student i in newListOfStudents)
                {
                    i.StudentInfo();
                }
                newListOfStudents.Clear();
                Console.WriteLine();
            }


            Console.ReadLine();
        }
Exemplo n.º 23
0
        static void Main()
        {
            List <Student> myStudents = new List <Student>();

            // 7
            myStudents.Add(new Student("Буряк", "Роман", 33));
            myStudents.Add(new Student("Вероівська", "Анастасія", 18));
            myStudents.Add(new Student("Гаврилюк", "Валерій", 15));
            myStudents.Add(new Student("Гень", "Олександр", 50));
            myStudents.Add(new Student("Дзененко", "Владислав", 56));
            myStudents.Add(new Student("Євтаєв", "Ярослав", 70));
            myStudents.Add(new Student("Зозуля", "Роман", 23));
            myStudents.Add(new Student("Івлєв", "Ростислав", 30));
            myStudents.Add(new Student("Карнацький", "Станіслав", 47));
            myStudents.Add(new Student("Коваль", "Дмитро", 40));
            myStudents.Add(new Student("Troelsen", "Дмитро", 40));
            myStudents.Add(new Student("Коваль", "Andrew", 40));

            // 8
            List <Student> myStudents2 = new List <Student>();

            myStudents2 = Extension.FindStudent(myStudents, Student.AgeMore18);
            Console.WriteLine(myStudents2.Count);
            myStudents2 = Extension.FindStudent(myStudents, Student.IsFirstLetterA);
            Console.WriteLine(myStudents2.Count);
            myStudents2 = Extension.FindStudent(myStudents, Student.IsLastNameMoreThanThreeSymbols);
            Console.WriteLine(myStudents2.Count);
            Console.WriteLine();

            // 9
            StudentPredicateDelegate del1 = Student.AgeMore18;
            StudentPredicateDelegate del2 = Student.IsFirstLetterA;
            StudentPredicateDelegate del3 = Student.IsLastNameMoreThanThreeSymbols;
            StudentPredicateDelegate del  = del1 + del2 + del3;

            myStudents2 = Extension.FindStudent(myStudents, del);
            Console.WriteLine(myStudents2.Count);
            Console.WriteLine();

            // лямбда методы
            // 10
            StudentPredicateDelegate del4 = delegate(Student student) { return(student.Age >= 20 && student.Age <= 25 ? true : false); };

            myStudents2 = Extension.FindStudent(myStudents, del4);
            Console.WriteLine(myStudents2.Count);
            Console.WriteLine();

            // 11
            StudentPredicateDelegate del5 = delegate(Student student) { return(student.FirstName == "Andrew" ? true : false); };

            myStudents2 = Extension.FindStudent(myStudents, del5);
            Console.WriteLine(myStudents2.Count);
            Console.WriteLine();

            // 12
            StudentPredicateDelegate del6 = delegate(Student student) { return(student.LastName == "Troelsen" ? true : false); };

            myStudents2 = Extension.FindStudent(myStudents, del6);
            Console.WriteLine(myStudents2.Count);
            Console.WriteLine();

            // лямбда выражения
            // 10
            StudentPredicateDelegate del7 = (Student student) => (student.Age >= 20 && student.Age <= 25 ? true : false);

            myStudents2 = Extension.FindStudent(myStudents, del7);
            Console.WriteLine(myStudents2.Count);
            Console.WriteLine();

            // 11
            StudentPredicateDelegate del8 = (Student student) => (student.FirstName == "Andrew" ? true : false);

            myStudents2 = Extension.FindStudent(myStudents, del8);
            Console.WriteLine(myStudents2.Count);
            Console.WriteLine();

            // 12
            StudentPredicateDelegate del9 = (Student student) => (student.LastName == "Troelsen" ? true : false);

            myStudents2 = Extension.FindStudent(myStudents, del9);
            Console.WriteLine(myStudents2.Count);
            Console.WriteLine();

            Console.ReadKey();
        }
Exemplo n.º 24
0
        static void Main(string[] args)
        {
/*
** Part 1
*/
            Product     CreatedOne = new Product();
            ProductLine Line       = new ProductLine();

            CreatedOne.ShowProgress();

            ProductLineDelegate WorkToProceed = null;

            MethodInfo[] methodInfos = Type.GetType("Lab11.ProductLine").GetMethods(BindingFlags.Public | BindingFlags.Instance);

            for (int i = 0; i < methodInfos.Length; ++i)
            {
                if (methodInfos[i].GetParameters().Length == 1 && (methodInfos[i].GetParameters()[0].ParameterType.FullName == "Lab11.Product&"))
                {
                    ProductLineDelegate TempDelegate = (ProductLineDelegate)Delegate.CreateDelegate(typeof(ProductLineDelegate), Line, methodInfos[i]);
                    if (WorkToProceed != null)
                    {
                        WorkToProceed += (ProductLineDelegate)TempDelegate;
                    }
                    else
                    {
                        WorkToProceed = new ProductLineDelegate(TempDelegate);
                    }
                }
            }

            WorkToProceed?.Invoke(ref CreatedOne);
            CreatedOne.ShowProgress();

            /*
            ** Part 2
            */

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

            Students.Add(new Student {
                FirstName = "asadsad", LastName = "Asdadb", Age = 18
            });
            Students.Add(new Student {
                FirstName = "sdsadsab", LastName = "Adsac", Age = 28
            });
            Students.Add(new Student {
                FirstName = "cdsada", LastName = "ssd", Age = 83
            });
            Students.Add(new Student {
                FirstName = "dds", LastName = "e", Age = 48
            });
            Students.Add(new Student {
                FirstName = "sssse", LastName = "sf", Age = 5
            });
            Students.Add(new Student {
                FirstName = "Addf", LastName = "g", Age = 6
            });
            Students.Add(new Student {
                FirstName = "Adsag", LastName = "h", Age = 78
            });
            Students.Add(new Student {
                FirstName = "ssh", LastName = "iddd", Age = 88
            });
            Students.Add(new Student {
                FirstName = "sdi", LastName = "j", Age = 9
            });
            Students.Add(new Student {
                FirstName = "ssj", LastName = "k", Age = 10
            });

            StudentPredicateDelegate CheckName     = (StudentPredicateDelegate)Delegate.CreateDelegate(typeof(StudentPredicateDelegate), typeof(Student), "CheckFirstName");
            StudentPredicateDelegate CheckLastName = (StudentPredicateDelegate)Delegate.CreateDelegate(typeof(StudentPredicateDelegate), typeof(Student), "CheckLastName");
            StudentPredicateDelegate CheckAge      = (StudentPredicateDelegate)Delegate.CreateDelegate(typeof(StudentPredicateDelegate), typeof(Student), "CheckAge");

            PrintList(Students.FindStudent(CheckName));
            Console.WriteLine();
            PrintList(Students.FindStudent(CheckLastName));
            Console.WriteLine();
            PrintList(Students.FindStudent(CheckAge));
            Console.WriteLine();
            Console.WriteLine();

            PrintList(Students.FindStudent(Stud => (Stud.FirstName.Length > 0 && Stud.FirstName[0] == 'A')));
            Console.WriteLine();
            PrintList(Students.FindStudent(Stud => Stud.LastName.Length > 3));
            Console.WriteLine();
            PrintList(Students.FindStudent(Stud => Stud.Age >= 18));
            Console.WriteLine();
            Console.WriteLine();

            PrintList(Students.FindStudent(Stud => Stud.Age >= 20 && Stud.Age <= 25));
            Console.WriteLine();
            PrintList(Students.FindStudent(Stud => Stud.FirstName == "Andrew"));
            Console.WriteLine();
            PrintList(Students.FindStudent(Stud => Stud.LastName == "Troelsen"));
            Console.WriteLine();

            Console.Read();
        }
Exemplo n.º 25
0
        static void Main()
        {
            List <Student> students = new List <Student>()
            {
                new Student()
                {
                    Age = 18, FirstName = "Artem", LastName = "Matviichuk"
                },
                new Student()
                {
                    Age = 19, FirstName = "Vitaliy", LastName = "Rudenko"
                },
                new Student()
                {
                    Age = 20, FirstName = "Oleksiy", LastName = "Luppa"
                },
                new Student()
                {
                    Age = 44, FirstName = "Ivan", LastName = "Sobko"
                },
                new Student()
                {
                    Age = 17, FirstName = "Yaroslav", LastName = "Pozniak"
                },
                new Student()
                {
                    Age = 16, FirstName = "Vadim", LastName = "Derkach"
                },
                new Student()
                {
                    Age = 21, FirstName = "Oleksandr", LastName = "Savchuk"
                },
                new Student()
                {
                    Age = 18, FirstName = "Artur", LastName = "Savchuk"
                },
                new Student()
                {
                    Age = 19, FirstName = "Vladislav", LastName = "Dryga"
                },
                new Student()
                {
                    Age = 13, FirstName = "Mykyta", LastName = "Nazarenko"
                }
            };


            StudentPredicateDelegate myDelegate = Student.IsFirstName;

            myDelegate += Student.IsLastName;
            myDelegate += Student.IsAge;

            List <Student> result8 = students.FindStudent(myDelegate);

            Console.WriteLine("Result8:");
            result8.ShowOnScreen();


            List <Student> result9 = students.FindStudent(
                new StudentPredicateDelegate(
                    student => student.Age >= 18 && student.FirstName[0] == 'A' && student.LastName.Length > 3
                    ));

            Console.WriteLine("Result9:");
            result9.ShowOnScreen();


            List <Student> result10 = students.FindStudent(
                new StudentPredicateDelegate(
                    student => student.Age >= 20 && 25 >= student.Age
                    ));

            Console.WriteLine("Result10:");
            result10.ShowOnScreen();


            List <Student> result11 = students.FindStudent(
                new StudentPredicateDelegate(
                    student => student.FirstName == "Andrew"
                    ));

            Console.WriteLine("Result11:");
            result11.ShowOnScreen();

            List <Student> result12 = students.FindStudent(
                new StudentPredicateDelegate(
                    student => student.LastName == "Troelsen"
                    ));

            Console.WriteLine("Result11:");
            result12.ShowOnScreen();

            Console.ReadKey();
        }