<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 表达式和关联对象
- Lambda 函数与表达式
- JAVA8流式编程【6】——lambda 表达式
- Java--lambda(λ)表达式
- Java Lambda 方法的引用(更为简洁的语法糖)
- Java Lambda 表达式的使用实例 (四大函数式接口与其他函数接口的示例)
- 委托和事件(14)——Lambda表达式(1)——Lambda
- 解决 def get_weight(shape, lambda): 报错: ^ SyntaxError: invalid syntax 的问题
- Java 8 lambda 表达式示例
- Java 8 Lambda 捕获外部变量 -- 不可变的原因
- 感受 Lambda 之美,推荐收藏,需要时查阅
- 通俗易懂的讲解 lambda 表达式
- C# 委托 匿名委托 Lambda 理解
- Java8新特性 Lambda、Stream、Optional实现原理
- Can’t pickle local object ‘DataLoader.__init__.<locals>.<lambda>’神奇解决
- C#语法:C# 简述Action与function内置委托用法、Lambda 表达式创建委托最为方便
- JSON转换+HTTPServletResponse+文件大小计算+Specifications动态查询+Stream+lambda+IDEA断点调试7/20-7/31
- C++ 自定义排序顺序详解,优先级队列 + lambda 表达式
- java 8 lambda 实现 Foreach
- java 8 lambda 实现 Comparator
- Stream Lambda 表达式常用功能测试
- 2. Lambda 的讲解