最近看了一些博客,对委托和匿名函数和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. hdu 畅通工程

    http://acm.hdu.edu.cn/showproblem.php?pid=1863 #include <cstdio> #include <cstring> #inc ...

  2. qt-vs-addin:Qt4和Qt5之VS插件如何共存与使用

    原则上,两者是不可以同时存在的,但是如果都安装了,该如何分别使用他们呢? Qt4 Visual Studio Add-in:官网可以下载安装程序,qt-vs-addin-1.1.11-opensour ...

  3. Sql 高效分页

    http://www.111cn.net/database/mysql/46350.htm http://g.kehou.com/t1032617472.html http://www.cnblogs ...

  4. 【转】 ubuntu12.04更新源 官网和163等

    原文网址:http://blog.csdn.net/zhangliang_571/article/details/8813999 分类: LINUX 摘要: 本文列出ubuntu 12.04 LTS更 ...

  5. Delphi TcxTreelist 设置scrollbars 不起作用的原因

    最近设置TcxTreelist的滚动条,发现水平的不起作用, 即使设置 sboth也不起作用. 查找,发现设置的一些属性导致了这个原因, 建立备忘,如下图: 1.属性, 这个页面,设置的表格,怎么也看 ...

  6. hdu 5423 Rikka with Tree(dfs)

    Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he ...

  7. 源码分析之spring-JdbcTemplate日志打印sql语句

    对于开源的项目来说的好处就是我们遇到什么问题可以通过看源码来解决. 比如近期有个同事问我说,为啥JdbcTemplate中只有在Error的时候才打印出sql语句呢.我一想,这和log的配置有关系吧. ...

  8. html5 app图片预加载

    function Laimgload(){} //图片预加载JS Laimgload.prototype.winHeight = function(){ //计算页面高度 var winHeight ...

  9. android面试题之七

    三十六.请解释下在单线程模型中Message.Handler.Message Queue.Looper之间的关系. 简单的说,Handler获取当前线程中的looper对象,looper用来从存放Me ...

  10. Understanding Abstractions of Secure Channels 的研读