博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linq中let关键字学习
阅读量:6719 次
发布时间:2019-06-25

本文共 1887 字,大约阅读时间需要 6 分钟。

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
list = new List
(){ 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

转载于:https://www.cnblogs.com/ranran/p/4059324.html

你可能感兴趣的文章
python 知识点小结
查看>>
CentOS7.4 yum 安装 Apache php5.6 或者 php7
查看>>
avalon2问题总结
查看>>
spring boot 集成quartz 2.0 实现前端动态配置(获取spring上下文)的两种方式,启动数据库中已开启定时任务...
查看>>
linux下进程、端口号相互查看方法
查看>>
严格模式
查看>>
LoadRunner12使用教程(七)——准备脚本回放
查看>>
swagger2的使用springmvc
查看>>
使用Hexo搭建个人博客的终极资料
查看>>
学习笔记CB004:提问、检索、回答、NLPIR
查看>>
介绍一些有趣的MySQL pager命令
查看>>
Golang 内存管理源码剖析
查看>>
简单了解负载均衡
查看>>
github 提交 常见操作和常见错误
查看>>
Ubuntu安装Mysql
查看>>
10.01-火狐浏览器设置
查看>>
20.22 告警系统监控项目
查看>>
开源ITIL管理工具OTRS简单介绍
查看>>
spring+httpclient完美集成,封装常用客户端工具类
查看>>
11月15日云栖精选夜读:分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?...
查看>>