在Linq查询中Let子句可以创建一个新的范围变量,并使用该变量保存表达式的结果。
看下面的例子:
private void LetQuery()
{ List<UserBaseInfo> users = new List<UserBaseInfo>(); for(int i=;i<;i++)
{
users.Add(new UserBaseInfo(i,"users0"+i.ToString(),"user0"+i.ToString()+"@web.com"));
} var result = from u in users
let number= Int32.Parse(u.UserName.Substring(u.UserName.Length - ))
group u by number % == into g where g.Count() < select g; foreach (var v in result)
{
foreach (UserBaseInfo u in v)
{
Response.Write(u.UserName + "</br>");
}
}
}
相当于用let 创建了一个整型变量number 来存放 Int32.Parse(u.UserName.Substring(u.UserName.Length - 2))表达式的结果。
运行结果: