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); } }