Example #1
0
        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()}个");
            }
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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);
        }
Example #5
0
 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()}个");
     }
 }
Example #6
0
        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);
            }
        }
Example #7
0
        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);
            }
        }
Example #8
0
 private List <Student> GetListDelegate(List <Student> source, ThanDelegate method)
 {
 }