Lambda表达式理解和Func<T,TResult>的浅析

一、Lambda 表达式 Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。
所有 Lambda 表达式都使用 Lambda 运算符 =>;,该运算符读为“goes to”。该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。
        IEnumerable<Product> filteredProducts = products.Filter(prod => 
            prod.Category == "Soccer" || prod.Price > 20);

    public static IEnumerable<Product> Filter(this IEnumerable<Product> productEnum, Func<Product, bool> selectorParam)
    {

        foreach (Product prod in productEnum)
        {
            if (selectorParam(prod))
            {
                yield return prod;
            }
        }
    }
二、Func<T,TResult>
功能描述:封装一个具有一个参数并返回TResult参数指定的类型值的方法.
语法:
public delegate TResult Func<T,TResult>(T arg);
参数说明: T:此委托封装的方法的参数类型.  TResult:此委托封装的方法的返回值类型.
         arg:委托封装的方法的参数     
                返回值:此委托封装的方法的返回值
 实例:
protected void Page_Load(object sender, EventArgs e)
{
    List<int> list = new List<int>();
    list.AddRange(new int[] { 9, 7, 10, 0, 2, 2, 4, 5, 8 });
    Func<int, bool> fi = new Func<int, bool>(DAYU7);
    IEnumerator<int> ie =list.Where<int>(fi).GetEnumerator();     
    while(ie.MoveNext())
    {
        Response.Write(ie.Current.ToString()+"<br/>");            
    }
}
public static bool DAYU7(int i)
{
    return i > 7;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值