C#_lamdba表达式

什么是lamdba表达式?

C#之前有匿名函数这个知识点,随着.NET版本的更新把匿名函数改成lamdba表达式

lamdba表达式主要是为了过滤或者筛选数组满足条件的元素,其实就一个函数,主要是作为其他函数的参数

就比如说一个例子:让你筛选集合当中满足年龄大于十九的人,我们平时的思路,就是先便利整个数组,使用if条件判断,把满足条件的元素打印出来

就比如下图显示:

但是现在,我们也可以通过lamdba表达式实现筛选功能

lamdba表达式(函数):首先定义lamdba函数

首先我们先来列举一下平常常用的解决方案

1.可以把一个方法定义到另外一个方法中

2.有返回值的方法

3.定义整型数组,集合保存元素

(Find--方法)查找满足条件的第一个元素,但是在合格必须自己写,参数是函数写筛选的条件

创建一个lamdba表达式

1.lamdba创建一个方法,需要有具体的格式

Func  代表一个方法;Func<int, int, bool>  方法的类型

Func<参数一类型,参数二类型,返回值类型> 表达式名 = (参数一,参数二)=>{方法实现}

Func<int, int, bool> f1Name = (int a, int b) =>
            {
                return a > b;
            };
            Console.WriteLine(f1Name(30,10));

2.lamdba简写方式

计算和的lamdba表达式,把小括号参数的类型省掉

            Func<int, int, int> f2Name = (a, b) =>
            {
                return a + b;
            };
            Console.WriteLine(f2Name(10,20));

3.方法体实现时候如果只有一句代码,可以把return和 { } 省略掉

            Func<int,int,bool> f3Name = (a,b)=> a % b == 0;
            Console.WriteLine(f3Name(9,3));

4.如果参数只有一个的话,参数的小括号可以省掉

            Func<int, int> f4Name = a => a * 2;
            Console.WriteLine(f4Name(10));

5.关于数组

            int[] i1 = new int[] { 1, 2, 3 };
            //find 遍历的作用,a是数组的元素
            Console.WriteLine(Array.Find(i1, a => a % 2 == 0));

List泛型集合常用的lamdba表达式的地方

            List<int> list = new List<int>(); // 放几个人的年龄
            list.Add(9);
            list.Add(8);
            list.Add(20);

平常我们需要遍历list,都是使用for循环

1.ForEach  遍历函数,x就是每一个元素

list.ForEach(x => Console.WriteLine(x));

2.RemoveAll  一处满足条件的所有的元素,参数lamdba表达式

list.RemoveAll(x => x % 2 == 0);
            Console.WriteLine(list.Count);//0

3.Any  任何一个元素满足条件即可

Console.WriteLine(list.Any(x => x % 2 == 0));

4.All  每一个元素都得必须满足条件

Console.WriteLine(list.All(x => x % 2 == 0));

5.Exists  是否存在满足条件的元素

Console.WriteLine(list.Exists(x => x % 3 == 0));

6.FindLast  找到满足条件的最后一个元素

Console.WriteLine(list.FindLast(x => x % 2 == 0)); 

ok,这基本就是关于lamdba表达式的有关的知识了

如果有关于不详细的知识点的话,请各位大佬多多关照

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值