• c# 委托 Predicate的使用示例


    一、说明

    委托Predicate 可以有参数(比如下面的示例),也可以不带参数,委托Predicate是返回固定值bool值的委托  

    二、示例代码(控制台程序)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Learn1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int ageState = 1;
                int claState = 1;
                int age = 10;
                string className = "1班";
                List<Student> myList = new List<Student>() { 
                new Student(){ age=1, className="2班", name="同学1"},
                new Student(){ age=2, className="1班", name="同学2"},
                new Student(){ age=12, className="3班", name="同学3"},
                new Student(){ age=6, className="3班", name="同学4"},
                new Student(){ age=14, className="1班", name="同学5"},
                new Student(){ age=18, className="1班", name="同学6"},
                new Student(){ age=7, className="1班", name="同学7"},
              new Student(){ age=15, className="2班", name="同学8"},
                new Student(){ age=19, className="2班", name="同学9"},
                new Student(){ age=25, className="1班", name="同学10"},
                new Student(){ age=32, className="1班", name="同学11"},
                new Student(){ age=16, className="1班", name="同学12"},
                new Student(){ age=1, className="2班", name="同学13"}
                
                };
                List<Student> resultList = myList.FindAll(new Predicate<Student>(
                    delegate(Student stu)
                    {
                        bool IsOk = true;
                        if (ageState==1)
                        {
                        if(stu.age<age)
                        {
                            IsOk = false;
                        }
                        }
    
                        if(claState==1)
                        {
                        if(stu.className!=className)
                        {
                            IsOk = false;
                        }
                        }
    
                        return IsOk;
                    
                    }
                    
                    ));
                resultList.ForEach(x => {
                    Console.WriteLine("名称:{0},年龄:{1},班级:{2}",x.name,x.age,x.className);
                });
                Console.ReadKey();
            }
        }
        public class Student
        {
            public string name { get; set; }
            public string className { get; set; }
            public int age { get; set; }
        }
    }
    View Code
  • 相关阅读:
    在线JS代码调试网址
    NVM在windows系统下载及安装
    浏览器【插件】【扩展】下载安装
    JavaScript 秘密花园
    HTTP 协议
    移动端:zepto框架
    移动端:移动端事件
    移动端:移动端页面布局
    移动端:Flex弹性盒布局
    移动端:自适应和响应式布局
  • 原文地址:https://www.cnblogs.com/net064/p/9968972.html
Copyright © 2020-2023  润新知