public void Show() { List <Student> studentList = this.GetStudentList(); { //找出年龄大于25 List <Student> result = new List <Student>(); //准备容器 foreach (Student student in studentList) //遍历数据源 { if (student.Age > 25) //判断条件 { result.Add(student); //满足条件的放入容器 } } Console.WriteLine($"结果一共有{result.Count()}个"); } { //this.GetList(studentList, 1); ThanDelegate method = new ThanDelegate(this.Than); List <Student> result = this.GetListDelegate(studentList, method); Console.WriteLine($"结果一共有{result.Count()}个"); } { //找出Name长度大于2 List <Student> result = new List <Student>(); foreach (Student student in studentList) { if (student.Name.Length > 2) { result.Add(student); } } Console.WriteLine($"结果一共有{result.Count()}个"); } { //this.GetList(studentList, 2); ThanDelegate method = new ThanDelegate(this.LengthThan); List <Student> result = this.GetListDelegate(studentList, method); Console.WriteLine($"结果一共有{result.Count()}个"); } { //找出Name长度大于2 而且年龄大于25 而且班级id是2 List <Student> result = new List <Student>(); foreach (Student student in studentList) { if (student.Name.Length > 2 && student.Age > 25 && student.ClassId == 2) { result.Add(student); } } Console.WriteLine($"结果一共有{result.Count()}个"); } { //this.GetList(studentList, 3); ThanDelegate method = new ThanDelegate(this.AllThan); List <Student> result = this.GetListDelegate(studentList, method); Console.WriteLine($"结果一共有{result.Count()}个"); } }
/// <summary> /// 判断逻辑传递进来+实现共用逻辑 /// 委托解耦,减少重复代码 /// </summary> /// <param name="source"></param> /// <param name="method"></param> /// <returns></returns> private List <Student> GetListDelegate(List <Student> source, ThanDelegate method) { List <Student> result = new List <Student>(); foreach (Student student in source) { if (method.Invoke(student)) { result.Add(student); } } return(result); }
/// <summary> /// 委托方式 传入判断逻辑 /// 委托解耦:减少重复代码 /// </summary> /// <param name="students"></param> /// <param name="thanDelegate"></param> /// <returns></returns> public List <Student> GetStudentsDelegate(List <Student> students, ThanDelegate thanDelegate) { List <Student> result = new List <Student>(); foreach (var student in students) { if (thanDelegate.Invoke(student)) { result.Add(student); } } return(result); }
/// <summary> /// 把判断逻辑传递进来 + 实现共用逻辑 /// /// 委托解耦, 减少重复代码 /// </summary> /// <param name="students"></param> /// <param name="dDelegate"></param> /// <returns></returns> private List <Student> GetListDelegate(List <Student> students, ThanDelegate dDelegate) { List <Student> resultList = new List <Student>(); foreach (var student in students) { if (dDelegate.Invoke(student)) { resultList.Add(student); } } return(resultList); }
public void Show() { List <Student> studentList = this.GetStudentList(); { ThanDelegate method = new ThanDelegate(this.Than); List <Student> result = this.GetListDelegate(studentList, method); Console.WriteLine($"结果一共有{result.Count()}个"); } { ThanDelegate method = new ThanDelegate(this.LengthThan); List <Student> result = this.GetListDelegate(studentList, method); Console.WriteLine($"结果一共有{result.Count()}个"); } { ThanDelegate method = new ThanDelegate(this.AllThan); List <Student> result = this.GetListDelegate(studentList, method); Console.WriteLine($"结果一共有{result.Count()}个"); } }
public void Show() { List <Student> students = this.GetStudents(); // 找出年龄大于25的 /* List<Student> result = new List<Student>(); * result = students.Where(x => x.Age > 10).ToList(); * foreach (var student in result) * { * Console.WriteLine(student.Name); * }*/ // 准备容器 //List<Student> result = new List<Student>(); // 遍历 // foreach (var student in result) // { // // 判断 // if (student.Name.Length>2) // { // result.Add(student); // } // } // // Console.WriteLine($"一共有{result.Count}"); { ThanDelegate ageThanDelegate = new ThanDelegate(this.AgeThan); List <Student> result = this.GetStudentsDelegate(students, ageThanDelegate); foreach (var student in result) { Console.WriteLine(student.Name); } ThanDelegate lengthThanDelegate = new ThanDelegate(this.LengthThan); List <Student> result1 = this.GetStudentsDelegate(students, lengthThanDelegate); } }
public void Show() { List <Student> students = getStudents(); { // 重复的实现, { //找出年龄大于25 的 List <Student> resuList = new List <Student>(); foreach (var student in students) { if (student.Age > 25) { resuList.Add(student); } } Console.WriteLine($"total {resuList.Count}"); } { List <Student> resuList = new List <Student>(); foreach (var student in students) { if (student.Name.Length > 2) { resuList.Add(student); } } Console.WriteLine($"total {resuList.Count}"); } { List <Student> resuList = new List <Student>(); foreach (var student in students) { if (student.Name.Length > 2 && student.Age > 25 && student.ClassId == 2) { resuList.Add(student); } } Console.WriteLine($"total {resuList.Count}"); } } { //委托 ThanDelegate method = new ThanDelegate(this.Than); this.GetListDelegate(students, method); ThanDelegate method2 = new ThanDelegate(this.LengthThan); this.GetListDelegate(students, method2); ThanDelegate method3 = new ThanDelegate(this.AllThan); this.GetListDelegate(students, method3); } }
private List <Student> GetListDelegate(List <Student> source, ThanDelegate method) { }