写给新接触linq的同学(二)lamda从零来理解

23 篇文章 0 订阅
18 篇文章 0 订阅


lamda表达式让很多新同学头疼,很多人问我到底是啥。

今天就写个博客给大家从零开始解释一下。(前提知识--委托)

            //委托变量
            Func<int, int, int> func = (a, b) => a + b;
            //计算2+3的值
            Console.WriteLine(func(2,3));
            Console.ReadKey();
输出:5

//其中
//(a, b) => a + b;
//这个lamda表达式等同于下面的方法
static int Add(int a,int b)
{
return a+b;
}

//说到这里的时候 ,群里的小盆友说他看懂了,所以我就继续往下说,稍稍深入一点。继续看下面的代码

    static void Main(string[] args)
        {
            //加法
            Func<int, int, int> func = (a, b) => a + b;
            //乘法
            Func<int, int, int> func1 = (a, b) => a * b;
            var result = Cal(func, 2, 3);
            var re = Cal(func1, 4, 6);
            Console.WriteLine("加法" + result);
            Console.WriteLine("乘法" + re);
            Console.ReadKey();
        }

        //计算 用委托作为参数传入,根据传入的委托来计算a和b,并返回结果。
        static int Cal(Func<int, int, int> func, int a, int b)
        {
            return func(a, b);
        }



//到了这一步就可以继续改写了。


  static void Main(string[] args)
        {

            var result = Cal((a, b) => a + b, 2, 3);//直接用lamda表达式
            var re = Cal((a, b) => a * b, 4, 6);//直接用lamda表达式

            Console.WriteLine("加法" + result);
            Console.WriteLine("乘法" + re);
            Console.ReadKey();
        }

        //计算 用委托作为参数传入,根据传入的委托来计算a和b,并返回结果。
        static int Cal(Func<int, int, int> func, int a, int b)
        {
            return func(a, b);
        }

//两个计算方式对比一下。可以知道,方法作为委托被传进了Cal方法内,然后被调用

//在linq中,运用的lamda表达式,原理跟这个是一样的。把委托传入linq的扩展方法内,在方法内部调用。






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值