1. 程式人生 > >c# 委托 Predicate的使用示例

c# 委托 Predicate的使用示例

ons leg ret [] ast 技術 system task result

一、說明

委托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

c# 委托 Predicate的使用示例