首页 > 代码库 > linq中let关键字学习
linq中let关键字学习
linq中let关键字就是对子查询的一个别名,let子句用于在查询中添加一个新的局部变量,使其在后面的查询中可见。
linq中let关键字实例
1、传统下的子查询与LET关键字的区别
C# 代码 复制
static void Main(string[] args){ int[] numbers = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //传统下的子查询做法 var query = from num in numbers select num * (from n in numbers where n % 2 == 0 select n).Count(); //使用LET关键字的做法 var query = from num in numbers let evenNumbers = from n in numbers where n % 2 == 0 select n select num * evenNumbers.Count(); foreach (var item in query) { Console.WriteLine(item); } Console.Read(); }
2、把每个单词开头包含a或者e的找出来
C# 代码 复制
using System;using System.Linq;public class Test{ static void Main(string[] args) { string[] strings = { "A penny saved is a penny earned.", "The aaxly sdj", "the pa is no" }; var query = from sentence in strings let words = sentence.Split(‘ ‘)//用空格分割成数组 from word in words let w = word.ToLower()//把每个字母小写 where w[0] == ‘a‘ || w[0] == ‘e‘ select word; foreach (var s in query) { Console.WriteLine(s); } Console.ReadLine(); }}
3、linq实例3
C# 代码 复制
var query = from p in persons let friendlyName = p.Gender == "男" ? "Mr" : "Ms" + p.Name select new { UserID = p.ID, FriendName = friendlyName };foreach (var item in query){ Console.WriteLine("No:{0},Friendly Name:{1}", item.UserID, item.FriendName);}
4、linq实例4
C# 代码 复制
public class Singer { public string Name { set; get; } public int Age { set; get; } } List<Singer> list = new List<Singer>(){ new Singer{Name="zhangs" ,Age=21}, new Singer{Name="zhangs",Age=25}, new Singer{Name="margy",Age=21} }; var query = from a in list let b = a.Name let c=a.Age where b =="zhangs" & c>21 select a; foreach (var item in query) { Response.Write("姓名: "+item.Name+" 年龄:"+item.Age); }//结果 姓名: zhangs 年龄:25//使用let 建立了个范围变量,这个范围变量在后续的where子句中使用,如果不使用let子句,where子句的表达式将写成这样://where a.Name=="zhangs" & a.Age>21</span>
linq中let关键字学习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。