let子句接受一个表达式的运算并且把它赋值给一个需要在其他运算中使用的标识符,它是from...let...where片段中的一部分
例如现在我们要统计一个学生的语文,数学,英语成绩总和成绩大于等于270的所有学生。
学生类:
public class Student_1
{
public int ID { get; set; }
public string Name { get; set; }
public int Chinese { get; set; }
public int Math { get; set; }
public int English { get; set; }
public override string ToString()
{
return string.Format("ID:{0},Name:{1},Chinese:{2},Math:{3},English:{4}",ID,Name,Chinese,Math,English);
}
}
构造数据源
List<Student_1> stuList = new List<Student_1>()
{
new Student_1(){ID=1,Name="John",Chinese=92,Math=88,English=92},
new Student_1(){ID=2,Name="Mary",Chinese=87,Math=94,English=82},
new Student_1(){ID=3,Name="KangKang",Chinese=89,Math=91,English=96},
};
查询数据及遍历,
//当语文成绩,数学成绩,英语成绩大于等270的时候筛选数据
var ret = from s in stuList
let sum = s.Chinese + s.Math + s.English
where sum >= 270
select s;
foreach (var item in ret)
{
Console.WriteLine(item);
}
结果如下:
ID:1,Name:John,Chinese:92,Math:88,English:92
ID:3,Name:KangKang,Chinese:89,Math:91,English:96
let让我们在查询的时候,通过临时建立起的表达式,为where 筛选数据的表达式提供数据支撑,便于开发者更好的处理数据