常用的lambada表达式
一: 首先先定义一个实体类 里面定义学生的姓名等
二 创建两个数组一个用来放姓氏 另一个用来放名字
string[] xings = { "张", "王", "李", "赵", "刘", "尹", "关" };
string[] names = { "狗蛋", "钢弹", "鸭蛋", "鸡蛋", "蛋蛋", "牛蛋", "洋蛋", "公明", "飞", "唯", "备" };
三: 常用的lambada表达式
1 创建十个学生保存在list里面
2 查询班级为1001下所有的学生信息
where 查询满足条件下的所有的元素 t是list的对象
ToList() 强制转换成lsit
2 查询班级编号为1001并且把查询出来的结果按照年龄由小到大进行排序
OrderBy 排序 (t => t.Age 根据age进行排序)
OrderByDescending 由大到小

3 查询班级编号为1001班级并且姓名以李的开头 根据年龄进行排序
List<Student> s4 = (list.Where(t => t.ClassCode == "1001" && t.StudentName.StartsWith("李")).OrderBy(t => t.Age)).ToList();
for(int i = 0; i < s4.Count; i++)
{
Console.WriteLine(s4[i].StudentName + "," + s4[i].StudentCode + "," + s4[i].Age);
}
4 对所有的学生年龄计算总和
sum 求和的,参数是lambda表达式对应字段
Console.WriteLine(list.Sum(t => t.Age));
5 计算1001班学生的年龄总和
Console.WriteLine(s2.Sum(t => t.Age));
6 求1001班最大的学生的年龄是多少
Console.WriteLine(s2.Max(t => t.Age));
7 求1001班学生的平均值
Console.WriteLine(s2.Average(t => t.Age));
8 求1001班所有学生姓名中包含屎的学生
EndsWith("蛋") 以蛋结尾
Contains 包含
List<Student> s5 = s2.FindAll(t => t.StudentName.Contains("屎"));
for(int i = 0; i < s5.Count; i++)
{
Console.WriteLine(s5[i].StudentName);
}
9 返回满足条件个数 10个学生年龄为20的学生个数
Console.WriteLine(s2.Count(t => t.Age == 20));
10 返回第一个满足条件的实体对象 不存在返回null
Student aa = s2.FirstOrDefault(t => t.Age == 20);
if(aa != null)
{
Console.WriteLine(aa.Age); // 如果没有满足条件 返回为null ,null不具备Age属性,报错
}
lambda表达式和数组结合使用
/List泛型集合常用的lambda表达式的地方
List<int> list = new List<int>(); // 放几个人的年龄
list.Add(9);
list.Add(8);
list.Add(20);
1 ForEach 遍历函数 x就是每一个元素
list.ForEach(x => Console.WriteLine(x));
2 RemoveAll 移除满足条件的所有的元素,参数lambda表达式
//list.RemoveAll(x => x % 2 == 0);
Console.WriteLine(list.Count);//0
3 Any任何一个元素满足条件即可
Console.WriteLine(list.Any(x => x % 2 == 0));
4 All 每一个元素都得必须满足条件
Console.WriteLine(list.All(x => x % 2 == 0));
5 Exists 是否存在满足条件的元素
Console.WriteLine(list.Exists(x => x % 3 == 0));
6 FindLast 找到满足条件的最后一个元素
Console.WriteLine(list.FindLast(x => x % 2 == 0));