Lambda 表达式有什么优缺点,在哪些方面适用?


最好提供相关代码进行讲解说明,以及适用场景

c# php C++

kjj123 12 years, 7 months ago

什么是Lambda表达式
lambda其实就是匿名函数的概念,匿名函数就是允许在使用委托的地方通过"in-line"操作来写代码(其实就是delegate(int i) {... 这里...})。Lambda表达式提供了一个更简单更语法化的方式来书写匿名函数。它们在LINQ查询表达式中很有用-因为它们提供了更精简并且类型安全的方法来书写函数,就像传递参数一样

在什么时候用到它,它有什么优点

在什么时候用Lambda表达式呢?你可以对集合操作使用Lambda表达式。(但是你不能对函数使用Lambda表达式),用一句话说明,其实Lambda表达式的优点也就是简化了coding和增加了类型安全。

Lambda表达式的真面目是什么样的

(1)使用Lambda表达式在程序中:

   
  static void Main(string[] args)
  
{
List<int> myList = new List<int> { 1,2,3,4,5 };

// 1.Lambda experssion
int val1 = myList.Find(i=> i == 4);
Console.WriteLine(val1);

Console.ReadKey();
}

(2)在近一步

   
  static void Main(string[] args)
  
{
List<int> myList = new List<int> { 1,2,3,4,5 };

// 2. Lambda experssion using delegate
int val2 = myList.Find(delegate(int i) { return (i==4); });
Console.WriteLine(val2);

Console.ReadKey();
}

看一下区别,我把 i => i == 4表达式改成了一个委托 delegate(int i) { return (i==4); }。实现的效果是一样的。

Y笑的石头 answered 12 years, 7 months ago

Your Answer