// let子句用于在LINQ表达式中存储子表达式的计算结果。let子句创建一个范围变量来存储结果,变量被创建后,不能修改或把其他表达式的结果重新赋值给它。此范围变量可 //以再后续的LINQ子句中使用。
public class Singer
{
public string Name { set; get; }
public int Age { set; get; }
}
List<Singer> list = new List<Singer>(){
new Singer{Name="zhangs" ,Age=21},
new Singer{Name="zhangs",Age=25},
new Singer{Name="margy",Age=21}
};
var query = from a in list
let b = a.Name
let c=a.Age
where b =="zhangs" & c>21
select a;
foreach (var item in query)
{
Response.Write("姓名: "+item.Name+" 年龄:"+item.Age);
}
//结果 姓名: zhangs 年龄:25
//使用let 建立了个范围变量,这个范围变量在后续的where子句中使用,如果不使用let子句,where子句的表达式将写成这样:
//where a.Name=="zhangs" & a.Age>21