最近看了一些博客,对委托和匿名函数和Lambda的方式有了一些更深的理解,在前人的基础上。我也写3个例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace LamdbaPricticeMine
{
class Program
{
delegate bool FilterDelegate(int num); static void Main(string[] args)
{
List<int> listNumbs = new List<int>();
// 初始化listNumbs
listNumbs.AddRange(new int[]{,,,,,}); // 1、委托
Console.WriteLine("用委托的方式输出符合要求的数");
PrintNumByDelegate(listNumbs); // 2、匿名方法
Console.WriteLine("用匿名函数的方式输出符合要求的数");
PrintNumByDelegate(listNumbs); // 3、Lambda表达式
Console.WriteLine("用Lambda的方式输出符合要求的数");
PrintNumByLambdaExpression(listNumbs);
Console.ReadLine();
} #region 用委托实现两个数相加 // 调用将委托作为参数的方法,并将实现的方法当做参数
static void PrintNumByDelegate(List<int> listNums)
{
PrintNumByDelegate(listNums, FilterDelegateEven);
}
// 定义一个将委托作为参数的方法
static void PrintNumByDelegate(List<int> listNumbs, FilterDelegate selectNums)
{
foreach (int item in listNumbs)
{
if (selectNums(item))
{
Console.WriteLine(item);
}
}
}
// 定义一个类似于委托的实现(偶数)
static bool FilterDelegateEven(int num)
{
return num % == ;
}
// 定义第二个委托的实现(基数)
static bool FilterDelegateOdd(int num)
{
return num % == ;
}
#endregion #region 匿名函数
static void PrintNumByAnonymousMethod(List<int> listNums)
{
listNums.FindAll(
delegate(int num)
{
if (num % == )
{
Console.WriteLine(num);
return true;
}
else
{
return false;
}
}
); }
#endregion #region 用Lambda的方式
static void PrintNumByLambdaExpression(List<int> listNums)
{
listNums.FindAll((int num) =>
{
if (num % == )
{
Console.WriteLine(num); return true;
}
else
{
return false;
}
});
}
#endregion }
}

用委托、匿名函数、Lambda的方式输出符合要求的数的更多相关文章

  1. (28)C#委托,匿名函数,lambda表达式,事件

    一.委托 委托是一种用于封装命名和匿名方法的引用类型. 把方法当参数,传给另一个方法(这么说好理解,但实际上方法不能当参数,传入的是委托类型),委托是一种引用类型,委托里包含很多方法的引用 创建的方法 ...

  2. python tips:匿名函数lambda

    lambda用于创建匿名函数,下面两种函数定义方式等价. f = lambda x: x + 2 def f(x): return x + 2 立刻执行的匿名函数 (lambda x: print(x ...

  3. 【Unity|C#】基础篇(9)——匿名函数 / Lambda表达式

    [学习资料] <C#图解教程>(第13章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...

  4. python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

    1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  5. python的匿名函数lambda解释及用法

    lambda函数的语法只包含一个语句,如下:    lambda arg1,arg2,.....argn:expression(主要是看下面的例子)代码示例: #-*- coding:utf-8 -* ...

  6. Python中的匿名函数lambda的用法

    一.lambda函数的简介  对lambda函数,它其实是一个类似于def的函数,只不过lambda是一个不需要定义函数名的匿名函数.当我们在有些时候,需要做一些简单的数学计算时,如果定义一个def函 ...

  7. 『Python基础-14』匿名函数 `lambda`

    匿名函数和关键字lambda 匿名函数就是没有名称的函数,也就是不再使用def语句定义的函数 在Python中,如果要声匿名函数,则需要使用lambda关键字 使用lambda声明的匿名函数能接收任何 ...

  8. 匿名函数(lambda)在列表生成式和生成器中的应用示例

    匿名函数(lambda)在列表生成式和生成器中的应用示例 列表生成式中实例 先看题: 以下代码的输出是什么?请给出答案并解释: def func(): return [lambda x: x * i ...

  9. python3 速查参考- python基础 6 -> 函数编程之参数、变量、作用域、递归、匿名函数 lambda

    函数基础 1. 速查笔记 #-- 函数相关的语句和表达式 myfunc('spam') # 函数调用 def myfunc(): # 函数定义 return None # 函数返回值 global a ...

随机推荐

  1. HTTP服务负载均衡总结

    从一开始就要思考扩展的架构,所谓可扩展性指的是通过扩展规模提高承载能力的本领,往往体现在增加物理服务器或者集群节点.负载均衡是常见的水平扩展的手段. 目标:(1)减少单点故障(2)提升整体吞吐量(3) ...

  2. Android开发的体会

    View Functionality--------------->逻辑 Data----------------------->实体,包括从View.Net.其他对象比如Location ...

  3. Windows脚本 - %~dp0的含义

    含义是:更改当前目录为批处理本身的目录,有些晕吧?不急,我举例 比如你有个批处理a.bat在D:\qq文件夹下  a.bat内容为 cd /d %~dp0 在这里,cd /d %~dp0的意思就是cd ...

  4. NOI 2013 矩阵游戏

    http://uoj.ac/problem/124 矩阵乘法. 十进制快速幂. 刚开始还傻傻地写二进制快速幂,然后陈老师一语点醒梦中人...... #include<cstdio> #in ...

  5. 推荐2个小工具 .NET reflector resharper

  6. Java集合的实现细节—Set集合和Map集合

    Set:代表无序.不可重复的集合 Map:代表key-value对集合,也称为关联数组 从表面上看,Set和Map相似性很少,但实际上可以说Map集合时Set集合的扩展. 1.Set集合和Map集合的 ...

  7. jQuery 各种选择器 $.()用法

    jQuery 元素选择器jQuery 使用 CSS 选择器来选取 HTML 元素. $("p") 选取 <p> 元素. $("p.intro") 选 ...

  8. JAVA并发实现四(守护线程和线程阻塞)

    守护线程     Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程. 守护线程作用是为其他前台 ...

  9. Struts2简单例子

    Struts实现注册功能 ControlFilter.java package com.jikexueyuan.filter; import java.io.IOException; import j ...

  10. swift 点击button改变其内填充图片,达到选中的效果

    先看下效果: 点击后: 实现:在页面拖一个button,然后在所在页面声明其变量和一个点击事件 声明: @IBOutlet weak var BtnZiDong: UIButton! 点击事件函数: ...