C# 传统的委托、匿名方法、Lambda对比

<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对比

相关文章:

你感兴趣的文章:

标签云: