Exemple #1
0
        static void Main(string[] args)
        {
            Student[] studentArray =
            {
                new Student()
                {
                    StudentID = 1, StudentName = "John", Age = 18
                },
                new Student()
                {
                    StudentID = 2, StudentName = "Steve", Age = 21
                },
                new Student()
                {
                    StudentID = 3, StudentName = "Bill", Age = 25
                },
                new Student()
                {
                    StudentID = 4, StudentName = "Ram", Age = 20
                },
                new Student()
                {
                    StudentID = 5, StudentName = "Ron", Age = 31
                },
                new Student()
                {
                    StudentID = 6, StudentName = "Chris", Age = 17
                },
                new Student()
                {
                    StudentID = 7, StudentName = "Rob", Age = 19
                },
            };

            // Use LINQ to find teenager students
            Student[] teenAgerStudents = studentArray.Where(s => s.Age > 12 && s.Age < 20).ToArray();
            teenAgerStudents.ToList().ForEach(i => Console.WriteLine(i.StudentName.ToString()));
            Console.WriteLine("");
            // Use LINQ to find first student whose name is Bill
            Student bill = studentArray.Where(s => s.StudentName == "Bill").FirstOrDefault();

            Console.WriteLine(bill.StudentName);
            Console.WriteLine("");
            // Use LINQ to find student whose StudentID is 5
            Student student5 = studentArray.Where(s => s.StudentID == 5).FirstOrDefault();

            Console.WriteLine(student5.StudentName);
            Console.WriteLine("");

            // Use LINQ to find student whose names starts with R
            Student[] studentsNamesR = studentArray.Where
                                           (s => s.StudentName.StartsWith("R")).ToArray();
            studentsNamesR.ToList().ForEach(i => Console.WriteLine(i.StudentName));
            Console.WriteLine("");
            // or using query syntax
            var studentsNameRR = from s in studentArray
                                 where s.StudentName.StartsWith("R")
                                 select s;

            studentsNameRR.ToList().ForEach(i => Console.WriteLine(i.StudentName));
            Console.WriteLine("");
            // other way af printing output
            foreach (var s in studentsNameRR)
            {
                Console.WriteLine(s.StudentName);
            }
            Console.WriteLine("");

            //delegate
            IsTeenager isTeenager = delegate(Student s) { return(s.Age > 12 && s.Age < 20); };
            Student    stud       = new Student()
            {
                Age = 25
            };

            Console.WriteLine(isTeenager(stud));

            //delegate with 2 parameters
            IsWanted isWanted = (s, age) => s.StudentName.StartsWith("R") && s.Age >= age;

            // Student collection
            IList <Student> studentList = new List <Student>()
            {
                new Student()
                {
                    StudentID = 1, StudentName = "John", Age = 13
                },
                new Student()
                {
                    StudentID = 2, StudentName = "Moin", Age = 21
                },
                new Student()
                {
                    StudentID = 3, StudentName = "Bill", Age = 18
                },
                new Student()
                {
                    StudentID = 4, StudentName = "Ram", Age = 20
                },
                new Student()
                {
                    StudentID = 5, StudentName = "Ron", Age = 15
                }
            };

            Console.WriteLine("");

            var teenAgerStudent = studentList.Where
                                      (s => s.StudentName.StartsWith("R") && s.Age >= 20);

            Console.WriteLine("Teen age Students:");

            foreach (Student std in teenAgerStudent)
            {
                Console.WriteLine(std.StudentName);
            }
        }
        static void Main(string[] args)

        {// IsTeenager checkAge = delegate (Student s) { return s.Age > 12 && s.Age < 20; };
            IsTeenager checkIfTeenager = s => s.Age > 12 && s.Age < 20;

            isYoungerThan checkIfYounger = (s, youngAge) => s.Age < youngAge;

            isYoungerThan isYounger = (s, youngAge) =>
            {
                Console.WriteLine("Lamba expression with multiple statemnt in the body");
                return(s.Age < youngAge);
            };

            isAdult checkIfAdult = (s) =>
            {
                int adultAge = 18;
                Console.WriteLine("Lambda expression with multiple statements in the body");
                return(s.Age >= adultAge);
            };

            Student stud1 = new Student()
            {
                Age = 23
            };

            Console.WriteLine(checkIfTeenager(stud1));
            Console.WriteLine(checkIfYounger(stud1, 26));
            Console.WriteLine(isYounger(stud1, 21));
            Console.WriteLine(checkIfAdult(stud1));


            Print print = () => Console.WriteLine("Thi is a parametr less lambda");

            print();

            Func <Student, bool> isStudentTeen = s => s.Age > 12 && s.Age < 20;
            Student stud = new Student()
            {
                Age = 21
            };

            Console.WriteLine(isStudentTeen(stud));

            Action <Student> PrintStudentDetails = s => Console.WriteLine("Name: {0}, Age: {1} ", s.Name, s.Age);
            Student          std = new Student()
            {
                Name = "Bill", Age = 45
            };

            PrintStudentDetails(std);

            //Student collection
            IList <Student> stdLits = new List <Student>()
            {
                new Student()
                {
                    Id = 1, Name = "IOn1", Age = 11
                },
                new Student()
                {
                    Id = 2, Name = "IOn2", Age = 17
                },
                new Student()
                {
                    Id = 5, Name = "IOn3", Age = 19
                },
                new Student()
                {
                    Id = 9, Name = "IOn5", Age = 24
                },
                new Student()
                {
                    Id = 7, Name = "IOn7", Age = 18
                },
            };
            Func <Student, bool> isStudentTeener = s => s.Age > 12 && s.Age < 20;
            var teenager = stdLits.Where(isStudentTeen);

            Console.WriteLine("teen age students:");
            foreach (Student stds in teenager)
            {
                Console.WriteLine(stds.Name);
            }


            Func <Student, bool> isStudentATeen = s => s.Age > 12 && s.Age < 21;
            var teenStudents = from s in stdLits
                               where isStudentATeen(s)
                               select s;

            Console.WriteLine("teen age students2:");
            foreach (Student stdss in teenStudents)
            {
                Console.WriteLine(stdss.Name);
            }
        }