Predicate--入门简介

说明:表示定义一组条件并确定指定对象是否符合这些条件的方法。此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素。

var predicate = new Predicate<int>(num=>num%2==0);
var list = new List<int>();
for (int i = 0; i < 20; i++)
{
list.Add(i);
}

var result = list.FindAll(predicate).ToArray();

for (int i = 0; i <result.Length ; i++)
{

Console.WriteLine($"{i}位:{result[i]}");
}

Predicate<DateTime> predicateTime;
predicateTime = a => a.AddDays(2).Day == DateTime.Now.Day;
Console.WriteLine(predicateTime(DateTime.Now.AddDays(-3)));

Console.WriteLine(DateTime.Now);
Console.ReadKey();

Func<T, bool> :表示有传入T类型的参数,返回值为bool的委托
Predicate<T>:表示有传入T类型的参数,返回值为bool的委托
 
 
  Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。这个是祖宗。
  Func可以接受0个至16个传入参数,必须具有返回值。
  Action可以接受0个至16个传入参数,无返回值。
  Predicate只能接受一个传入参数,返回值为bool类型 --------------------- 本文来自 rye_grass 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/rye_grass/article/details/66041423?utm_source=copy 
 
  Func<T, bool>是对delegate bool Predicate<T>(T obj)的简化,
  Predicate<T>又是对Func<T, bool>的简化,
  其实,就是一个东西。
  List<T>中的方法应该统一参数

 可以改善以前的判断逻辑 提高代码重用率

                       ---一些内容由网络搬运而来

猜你喜欢

转载自www.cnblogs.com/iamyo/p/9727979.html