在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))表達式的結果。
運行結果: