<span style="font-size:18px;">using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LambdaDemo { class Program { static void Main(string[] args) { Console.WriteLine("传统的委托代码示例:"); FindListDelegate(); Console.Write("\n"); Console.WriteLine("使用匿名方法的示例:"); FindListAnonymousMethod(); Console.Write("\n"); Console.WriteLine("使用Lambda的示例:"); FindListLambdaExpression(); } //传统的调用委托的示例 static void FindListDelegate() { //先创建一个泛型的List类 List<string> list = new List<string>(); list.AddRange(new string[] { "ASP.NET课程","J2EE课程", "PHP课程", "数据结构课程" }); Predicate<string> findPredicate = new Predicate<string>(IsBookCategory); List<string> bookCategory = list.FindAll(findPredicate); foreach (string str in bookCategory) { Console.WriteLine("{0}\t", str); } } //谓词方法,这个方法将被传递给FindAll方法进行书书籍分类的判断 static bool IsBookCategory(string str) { return str.EndsWith("课程") ? true : false; } //使用匿名方法来进行搜索过程 static void FindListAnonymousMethod() { //先创建一个泛型的List类 List<string> list = new List<string>(); list.AddRange(new string[] { "ASP.NET课程", "J2EE课程", "PHP课程", "数据结构课程" }); //在这里,使用匿名方法直接为委托创建一个代码块,而不用去创建单独的方法 List<string> bookCategory = list.FindAll ( delegate(string str) { return str.EndsWith("课程") ? true : false; } ); foreach (string str in bookCategory) { Console.WriteLine("{0}\t", str); } } //使用Lambda来实现搜索过程 static void FindListLambdaExpression() { //先创建一个泛型的List类 List<string> list = new List<string>(); list.AddRange(new string[] { "ASP.NET课程", "J2EE课程", "PHP课程", "数据结构课程" }); //在这里,使用了Lambda来创建一个委托方法 List<string> bookCategory = list.FindAll((string str) => str.EndsWith("课程")); foreach (string str in bookCategory) { Console.WriteLine("{0}\t", str); } Console.ReadLine(); } } } </span>
详细解决方案
C# 保守的委托、匿名方法、Lambda对比
热度:33 发布时间:2016-05-05 03:55:31.0
相关解决方案
- |ZYCIIS| Lambda 怎么进行拆分 多谢 有示例
- Html.TextBoxFor 为什么 要用 Lambda,该怎么处理
- named_scope or scope 是什么?lambda 如何用
- 统计功能的 linq 和 lambda 语句的写法
- Part 99 Lambda expression in c
- SQL语句转换c# lambda 表达式有关问题
- Python中的Python lambda
- Python不可排序类型:在简单的max(d,lambda ...)调用中,function()> dict()?
- lambda 表达式和关联对象
- Java--lambda(λ)表达式
- 委托和事件(14)——Lambda表达式(1)——Lambda
- 解决 def get_weight(shape, lambda): 报错: ^ SyntaxError: invalid syntax 的问题
- Java 8 lambda 表达式示例
- Can’t pickle local object ‘DataLoader.__init__.<locals>.<lambda>’神奇解决
- lambda 函数 - 匿名函数的使用
- java8新特性-------------lambda 基础语法
- Python·关于 [lambda x: x*i for i in range(4)] 理解
- 关于 Boost.Lambda
- ruby Proc Lambda
- Lambda 架构 Speed Layer 详解
- map中的 lambda 操作
- Java基础 多线程编程 Thread Runnable jdk 8 Lambda 表达式 注解 Callable接口
- C#:委托 与 LamBda 表达式
- python 前向引用,递归,变量的作用域,函数编程,匿名函数(lambda)
- java8 Lambda+stream 排序 选择 最大 最小 去重
- Java8 新特性之 Lambda 表达式
- Effective Modern C++ 笔记 第六章 Lambda Expressions
- lambda 根据实体类的拼音排序
- Lambda(六)--复合Lambda
- Lambda(三)--环绕执行模式