2018-04-21 开胃学习.Net 系列 - C# lamb
2018-04-22 本文已影响0人
Kaiweio
定义:"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式
好处:Lambda简化了匿名委托的使用,减少开发中需要编写的代码量。
具体内容:它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。
写法:所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),右边是表达式或语句块。Lambda表达式x => x * x读作"x goes to x times x"。
Lambda表达式的本质是“匿名方法”,即当编译我们的程序代码时,“编译器”会自动将“Lambda表达式”转换为“匿名方法”,如下例:
namespace LambdaLearn
{
public class Person
{
public string Name { get; set; }
public int Age { get;set; }
}
class Program
{
public static List<Person> PersonsList()//方法返回Person类的List集合
{
List<Person> persons = new List<Person>();
for (int i = 0; i < 7; i++)
{
Person p = new Person() { Name = i + "人物年龄", Age = 8 - i, };
persons.Add(p);
}
return persons;
}
static void Main(string[] args)
{
List<Person> persons0 = PersonsList();
List<Person> persons1 = persons.Where(p => p.Age > 6).ToList(); //所有Age>6的Person的集合
Person per = persons.SingleOrDefault(p => p.Age == 1); //Age=1的单个people类
List<Person> persons2 = persons.Where(p => p.Name.Contains("年龄")).ToList(); //所有Name包含年龄的Person的集合
}
}
}