linq中let关键字学习

时间:2021-08-11 11:16:41

linq中let关键字就是对子查询的一个别名,let子句用于在查询中添加一个新的局部变量,使其在后面的查询中可见。

linq中let关键字实例

1、传统下的子查询与LET关键字的区别

 
 
C# 代码   复制
linq中let关键字学习
linq中let关键字学习static void Main(string[] args)
linq中let关键字学习{
linq中let关键字学习 int[] numbers = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
linq中let关键字学习
linq中let关键字学习 //传统下的子查询做法
linq中let关键字学习 var query = from num in numbers
linq中let关键字学习 select num * (from n in numbers
linq中let关键字学习 where n % 2 == 0
linq中let关键字学习 select n).Count();
linq中let关键字学习
linq中let关键字学习 //使用LET关键字的做法
linq中let关键字学习 var query = from num in numbers
linq中let关键字学习 let evenNumbers = from n in numbers
linq中let关键字学习 where n % 2 == 0
linq中let关键字学习 select n
linq中let关键字学习 select num * evenNumbers.Count();
linq中let关键字学习
linq中let关键字学习 foreach (var item in query)
linq中let关键字学习 {
linq中let关键字学习 Console.WriteLine(item);
linq中let关键字学习 }
linq中let关键字学习
linq中let关键字学习 Console.Read();
linq中let关键字学习
linq中let关键字学习}
linq中let关键字学习

2、把每个单词开头包含a或者e的找出来

 
 
C# 代码   复制
linq中let关键字学习
linq中let关键字学习using System;
linq中let关键字学习using System.Linq;
linq中let关键字学习
linq中let关键字学习public class Test
linq中let关键字学习{
linq中let关键字学习 static void Main(string[] args)
linq中let关键字学习 {
linq中let关键字学习 string[] strings = { "A penny saved is a penny earned.", "The aaxly sdj", "the pa is no" };
linq中let关键字学习
linq中let关键字学习 var query = from sentence in strings
linq中let关键字学习 let words = sentence.Split(' ')//用空格分割成数组
linq中let关键字学习 from word in words
linq中let关键字学习 let w = word.ToLower()//把每个字母小写
linq中let关键字学习 where w[0] == 'a' || w[0] == 'e'
linq中let关键字学习 select word;
linq中let关键字学习
linq中let关键字学习 foreach (var s in query)
linq中let关键字学习 {
linq中let关键字学习 Console.WriteLine(s);
linq中let关键字学习 }
linq中let关键字学习 Console.ReadLine();
linq中let关键字学习 }
linq中let关键字学习}
linq中let关键字学习

3、linq实例3

 
 
C# 代码   复制
linq中let关键字学习
linq中let关键字学习var query = from p in persons
linq中let关键字学习 let friendlyName = p.Gender == "男" ? "Mr" : "Ms" + p.Name
linq中let关键字学习 select new
linq中let关键字学习 {
linq中let关键字学习 UserID = p.ID,
linq中let关键字学习 FriendName = friendlyName
linq中let关键字学习 };
linq中let关键字学习foreach (var item in query)
linq中let关键字学习{
linq中let关键字学习 Console.WriteLine("No:{0},Friendly Name:{1}", item.UserID, item.FriendName);
linq中let关键字学习}
linq中let关键字学习

4、linq实例4

 
 
C# 代码   复制
linq中let关键字学习
linq中let关键字学习public class Singer
linq中let关键字学习 {
linq中let关键字学习 public string Name { set; get; }
linq中let关键字学习 public int Age { set; get; }
linq中let关键字学习 }
linq中let关键字学习
linq中let关键字学习 List<Singer> list = new List<Singer>(){
linq中let关键字学习 new Singer{Name="zhangs" ,Age=21},
linq中let关键字学习 new Singer{Name="zhangs",Age=25},
linq中let关键字学习 new Singer{Name="margy",Age=21}
linq中let关键字学习 };
linq中let关键字学习
linq中let关键字学习
linq中let关键字学习 var query = from a in list
linq中let关键字学习 let b = a.Name
linq中let关键字学习 let c=a.Age
linq中let关键字学习 where b =="zhangs" & c>21
linq中let关键字学习 select a;
linq中let关键字学习 foreach (var item in query)
linq中let关键字学习 {
linq中let关键字学习 Response.Write("姓名: "+item.Name+" 年龄:"+item.Age);
linq中let关键字学习 }
linq中let关键字学习
linq中let关键字学习//结果 姓名: zhangs 年龄:25
linq中let关键字学习//使用let 建立了个范围变量,这个范围变量在后续的where子句中使用,如果不使用let子句,where子句的表达式将写成这样:
linq中let关键字学习//where a.Name=="zhangs" & a.Age>21</span>
linq中let关键字学习