CH12_Lambda表达式


本章目标

  • 掌握Lambda表达式的运用

Lambda

语法

1
(参数列表) => 表达式;

这里需要注意的是,如果在方法定义中定义了返回值类型,在表达式中不必使用 return 关键字,只需要计算值即可。

这种形式只能用在方法中只有一条语句的情况下,方便方法的书写。

案例1:无参

1
2
3
4
5
6
7
8
9
class LambdaClass
{
//无返回值情形
public static void Builder1() => Console.WriteLine(new Random().Next(1111,9999));

//有返回值情形
public static int Builder2() => new Random().Next(1111, 9999);
}

1
2
3
4
5
6
7
8
9
class Program
{
static void Main(string[] args)
{
LambdaClass.Builder1();

Console.WriteLine(LambdaClass.Builder2());
}
}

案例2:有参

1
2
3
4
5
6
7
8
9
class LambdaClass
{
//无返回值情形
public static void Add1(int a, int b) => Console.WriteLine(a + b);

//有返回值情形
public static int Add2(int a, int b) => a + b;
}

1
2
3
4
5
6
7
8
9
10
class Program
{
static void Main(string[] args)
{
LambdaClass.Add2(100, 200);

Console.WriteLine(LambdaClass.Add2(100, 200));
}
}

案例3:在集合中使用Lambda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Student
{
public string Name { get; set; }

public int Age { get; set; }

public string Sex { get; set; }
}

class Program
{


static void Main(string[] args)
{
//初始化数据
List<Student> stuList = new List<Student>();
stuList.AddRange(new Student[] {
new Student{ Name="张三",Age=25,Sex="男" },
new Student{ Name="李四",Age=18,Sex="女" },
new Student{ Name="王五",Age=17,Sex="男" },
new Student{ Name="赵六",Age=23,Sex="女" }
});

//查找数据
List<Student> temp = stuList.FindAll(p=> p.Age>18 && p.Sex=="女");


Console.ReadLine();
}
}

课后作业

1.略