linq之let子句

  在Linq查询中Let子句可以创建一个新的范围变量,并使用该变量保存表达式的结果。

看下面的例子:

 1 private void LetQuery()
 2         {
 3 
 4             List<UserBaseInfo> users = new List<UserBaseInfo>();
 5 
 6             for(int i=1;i<10;i++)
 7             {
 8                 users.Add(new UserBaseInfo(i,"users0"+i.ToString(),"user0"+i.ToString()+"@web.com"));
 9             }
10 
11             var result = from u in users
12                         let number= Int32.Parse(u.UserName.Substring(u.UserName.Length - 2))
13                          group u by number % 2 == 0 into g
14 
15                          where g.Count() < 5
16 
17                          select g;
18 
19             foreach (var v in result)
20             {
21                 foreach (UserBaseInfo u in v)
22                 {
23                     Response.Write(u.UserName + "</br>");
24                 }
25             }
26         }

相当于用let 创建了一个整型变量number 来存放 Int32.Parse(u.UserName.Substring(u.UserName.Length - 2))表达式的结果。
运行结果:

 

原文地址:https://www.cnblogs.com/yplong/p/5413450.html