30天C#基础巩固----Lambda表达式

     这几天有点不在状态,每一次自己很想认真的学习,写点东西的时候都会被各种小事情耽误,执行力太差。所以自己反思了下最近的学习情况,对于基础的知识,可以从书中和视频中学习到,自己还是需要注意下关于自己以前做的项目中的一些知识点,那些才是HR提问的关键所在。今天都6.4号了,时间过的真是快呀,学校7.18左右放假,自己打算去西安看看,能不能找到一个实习工作,不行的话只能等到大四的第一学期去走校招。可以我们大四的第一学期还有很多课,真不知道老师是如何想的。所以在这还剩不到快2个月的时间里,把自己想要学习的东西好好的学习下,提高自己的执行力和自控力。

委托,匿名函数,Lambda表达式

   关于委托前面有说的,其实就是那么几个步骤,但是想在项目中熟练的使用,不是那么简单的,这些知识点都不一些不太容易掌握的,很抽象,需要通过长时间的项目代码练习才可以更好的理解里面前辈们所提倡的观点思路。

匿名函数----实现1--100的和。

    /// <summary>
    /// 匿名方法
    /// </summary>
    class Program
    {
        //定义委托。
        public delegate int GetSumNum(int min,int max);
        static void Main(string[] args)
        {
            //匿名方法,必须使用delegate来定义,参数和返回值必须和定义的委托一样。
            GetSumNum _getSum = delegate(int min,int max)
            {
                int sum = 0;
                for (int i =min; i <=max; i++)
                {
                    sum += i;
                }
                return sum;
            };
            int a=_getSum(1,100); //调用匿名函数,传递参数。
            Console.WriteLine(a);
            Console.ReadKey();
        }
    }

通过Lambda表达式来得到结果,比较二者的区别和相似的地方。

    /// <summary>
    /// 匿名方法
    /// </summary>
    class Program
    {
        //定义委托。
        public delegate int GetSumNum(int min, int max);
        static void Main(string[] args)
        {
            //Lambda表达式  注意:要是方法体中代码很多,我们就可以写一个{ }来表示。
            GetSumNum _getSum = (min, max) =>
            {
                int sum = 0;
                for (int i = min; i <= max; i++)
                {
                    sum += i;
                }
                return sum;
            };
            int a = _getSum(1, 100); //调用匿名函数,传递参数。
            Console.WriteLine(a);
            Console.ReadKey();
        }
    }

注意:

       我们使用Lambda表达式的时候,(a,b)=>{}; a,b是我们的参数,{}里面是我们需要写的代码段,要是只有一句代码直接写在后面不需要写{}。

eg:得到1--1000之间的水仙花数。

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。

    class Program
    {
        public delegate bool GetNum(int num);
        static void Main(string[] args)
        {
            List<int> listNum=new List<int>();
            for (int i = 100; i <1000; i++)
            {
                listNum.Add(i);
            }
            //将Lambda的方法传递进去,在MyWhere中进行执行。
           int[] ns=MyWhere(listNum.ToArray(), e =>
            {
                //123
                int n1 = e%10;          //  3
                int n2 = e/10%10;   // 2
                int n3 = e/100;     //  1
                return (n1*n1*n1 + n2*n2*n2 + n3*n3*n3) == e;
            });
            Console.WriteLine("100--1000之间的水仙花数------:");
            for (int i = 0; i <ns.Length; i++)
            {
                Console.WriteLine(ns[i]);
            }
            Console.ReadKey();
        }
        //实现委托的方法
        public static int[] MyWhere(int[] num,GetNum ck)
        {
            List<int> list=new List<int>();
            for (int i = 0; i <num.Length; i++)
            {
                if (ck(num[i]))
                {
                     list.Add(num[i]);
                }
            }
            return list.ToArray();
        }
    }

时间: 2024-10-16 07:50:40

30天C#基础巩固----Lambda表达式的相关文章

好程序员分享java8新特性之Lambda表达式

?.Lambda表达式简介 什么是Lambda? Lambda表达式是Java 8推出的?个新特性.从本质上讲,Lambda表达式是?个匿名函数. 为什么要使?Lambda? 使?Lambda表达式可以对?个接?进??常简洁的实现. 之前我们在给?个接?引?赋值的时候,可以使?接?实现类,或者匿名内部类.但是有了 Lambda表达式,我们可以更加?便的实现这个需求. interface Comparator<T>?{ int compare(T o1, T o2); } class Progr

记关于 Lambda 表达式的基础写法

1 namespace MyLambda 2 { 3 public delegate void Action<in T1, in T2, in T3, in T4, in T5, in T6, in T7, in T8, in T9, in T10, in T11, in T12, in T13, in T14, in T15, in T16, in T17>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 a

Python3基础 map 与 lambda表达式配合 将指定系列元素乘2

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ex1: code: #建立lambda表达式 ChengEr=lambda x : x * 2 #产生1到100的序列 aGroupNum=range(1,101,1) #map映射 将序列中的每一个元素作为 函数的参数 进行处理 res=map(ChengEr,aGroupNum) #转

Python基础-lambda表达式与三元运算

一.lambda表达式 1 >>> def add(x,y): #定义一个加法函数 2 return x+y #返回两个参数的相加的值 3 4 >>> z=f(3,4) 5 >>> print(z) 6 7 #调用加法函数返回7 7 >>> lambda x,y:x+y 8 <function <lambda> at 0x0000020F385B86A8> 9 #可以看到lambda是一个 function(函

C++开发EOS基础指南:迭代器和Lambda表达式

让我们来谈谈迭代器,它是一个非常有用的工具,在整个EOS代码库中大量使用.如果您来自JavaScript背景,您可能已经熟悉迭代器,就像它们用于循环一样.迭代器的关键概念是提供一种更好的方法来遍历项集合.额外的好处是您可以为任何自定义类实现迭代器接口,使迭代器成为遍历数据的通用方法. // @url: https://repl.it/@MrToph/CPPBasics-Iterators #include <iostream> #include <vector> using nam

【2017-06-01】Linq基础+Lambda表达式实现对数据库的增删改查

一.Linq to sql 类 高集成化的数据库访问技术 使用Linq可以代替之前的Ado.Net.省去了自己敲代码的实体类和数据访问类的大量工作. 实体类: 添加一个Linq to sql 类 ----选择要使用的数据库---- 拖入要使用的表  就相当于实体类建完了. 如果进行属性扩展,在App_Code下添加类,类名同表名一致.将该类在访问修饰符后加上partial,将该类定为实体类的一部分 数据访问类: 不用在App_Code下再建数据访问类了. 直接在使用数据访问类的地方用数据库上下文

Python3基础 filter与lambda表达式配合 筛选出1-100之间的奇数

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ex1: code: #建立lambda表达式 PanDuanJiShu=lambda x : x%2==1 #产生1到100的序列 aGroupNum=range(1,101,1) #过滤出来奇数 res=filter(PanDuanJiShu,aGroupNum) #转换成列表 resL

[C#基础]c#恶补之Lambda表达式

今天在看别人的代码时发现了这个--"=>",看起来像c语言中的指针,又像是这个表情--":)",不管像什么,确实把我难倒了,于是决定学习一下. 简单地说,Lambda表达式就像是匿名委托. using UnityEngine; using System.Collections; //若要创建 Lambda 表达式,需要在 Lambda 运算符 => 左侧指定输入参数(如果有), //然后在另一侧输入表达式或语句块. //仅当 lambda 只有一个输入参

python基础学习-三元表达式和lambda表达式

#!/usr/bin/env python # -*- coding:utf-8 -*-  三元运算 if else 的简写 name ="alex" if 1==1 else "SB" #如果条件成立 赋alex 否则 赋SB print(name) #--------------lambda表达式 f2 = lambda a1,a2:a1+a2+100 #等价 下边函数定义 def f1(a1,a2): return  a1+a2+100 #---------l