zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    python enhanced generator - coroutine
    python yield generator 详解
    gunicorn syncworker 源码解析
    gunicorn 信号处理(SIGHUP,SIGUSR2)
    gunicorn Arbiter 源码解析
    gunicorn 简介
    kafka+zookeeper环境配置(linux环境单机版)
    在Linux中安装JDK的步骤
    Kafka安装及部署
    Zookeeper 安装和配置
  • 原文地址:https://www.cnblogs.com/net064/p/9968972.html
Copyright © 2011-2022 走看看