(转)C#中的Predicate<T>与Func<T, bool>

2021-07-16 03:19

阅读:1032

  Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。这个是祖宗。
  Func可以接受0个至16个传入参数,必须具有返回值。
  Action可以接受0个至16个传入参数,无返回值。
  Predicate只能接受一个传入参数,返回值为bool类型。

public delegate bool Predicatein T>(T obj);  
public delegate TResult Funcin T, out TResult>(T arg);  
Func :表示有传入T类型的参数,返回值为bool的委托
Predicate:表示有传入T类型的参数,返回值为bool的委托
static void Main(string[] args)  
{  
    Predicateint> myPredicate = i => i > 10;  
    Funcint, bool> myFunc = i => i > 10;  
    Listint> list = new Listint>();  
    list.Add(5);  
    list.Add(9);  
    list.Add(20);  
    list.Add(30);  
    Listint> newList = list.FindAll(myPredicate);  
    Listint> newListFunc = list.Where(myFunc).ToList();  
    Console.ReadKey();  
} 
看到Predicate和Func接受的是完全相同的Lambada表达式,
而且执行结果newList和newListFunc完全相同。
 
http://blog.csdn.net/rye_grass/article/details/66041423  C#中的Predicate与Func


评论


亲,登录后才可以留言!