let语句用于在Linq表达式中存储子表达式的计算结果。可以在后续的where子句中使用。

例子:

创建控制台应用程序Demo_let

 

class Program
{
static void Main(string[] args)
{
// 填充数据
List<PersonInfo> pList = new List<PersonInfo>()
{
new PersonInfo{ Name="周瑜", Country="", Official="都督", Salary=8000},
new PersonInfo{ Name="典韦", Country="", Official="上将", Salary=6000},
new PersonInfo{ Name="张飞", Country="", Official="上将", Salary=6700},
new PersonInfo{ Name="曹操", Country="", Official="皇帝", Salary=12000},
new PersonInfo{ Name="许褚", Country="", Official="上将", Salary=8000},
new PersonInfo{ Name="关羽", Country="", Official="上将", Salary=8800},
new PersonInfo(){ Name="刘备", Country="", Official="皇帝", Salary=10000},
new PersonInfo{ Name="孙权", Country="", Official="皇帝", Salary=11000},
new PersonInfo{ Name="陆逊", Country="", Official="都督", Salary=8001}

};

var query = from result in pList
where result.Country == ""
let g = result
where g.Salary > 8000// 可以连续多个where
select result;

//遍历分组数据
foreach (var g in query)
{
Console.WriteLine(string.Format("{0} 的薪水为:{1}", g.Name, g.Salary));
}

Console.ReadKey();
}
}

运行:

感觉let跟into作用差不多,都是存储之前查询的结果。供以后的查询使用。

posted on 2012-02-27 07:46  金丝猴  阅读(515)  评论(0编辑  收藏  举报