使用predicate和Action委托查询

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UsePredicateDelegate
{
    class Program
    {
        static void Main(string[] args)
        {
            new Program().PredicateDelegate();//调用自定义方法显示信息
        }
        public void PredicateDelegate()
        {
            List<User> P_List_user = new List<User>();//创建泛型集合
            //为泛型集合赋值
            P_List_user.Add(new User() { Name = "小刘", Age = 33, Pay = 5000 });
            P_List_user.Add(new User() { Name = "小王", Age = 30, Pay = 5000 });
            P_List_user.Add(new User() { Name = "小赵", Age = 32, Pay = 5000 });
            P_List_user.Add(new User() { Name = "小吕", Age = 30, Pay = 5000 });
            P_List_user.Add(new User() { Name = "小房", Age = 31, Pay = 5000 });
            string P_Str = string.Empty;//定义一个字符串变量,用来记录输出信息

//Predicate委托
            List<User> P_List_temp = P_List_user.FindAll(//在泛型集合中查找
                (pp) =>//定义匿名方法
                {
                    return pp.Age > 30;//指定查找条件
                });

//Action委托
            P_List_temp.ForEach(//遍历查询结果
                (pp) =>//定义匿名方法
                {
                    //记录查找到的信息
                    P_Str += "姓名:" + pp.Name + "   年龄:" +pp.Age.ToString() + Environment.NewLine;
                });
            Console.WriteLine(P_Str);//输出信息
            Console.ReadLine();
        }

        class User
        {
            public string Name { get; set; }//自动实现名称属性
            public int Age { get; set; }//自动实现年龄属性
            public double Pay { get; set; }//自动实现薪资属性

            public override string ToString()
            {
                return string.Format(
                    "姓名:{0}  年龄:{1}  工资:{2}", Name, Age, Pay);//对信息进行格式化
            }
        }
    }
}
 

上一篇:Java练习>Predicate接口>>集合信息筛选


下一篇:应用OR谓词Java 8