LINQ之let关键字
let子句用于在LINQ表达式中存储子表达式的计算结果。let子句创建一个范围变量来存储结果,变量被创建后,不能修改或把其他表达式的结果重新赋值给它。
此范围变量可以再后续的LINQ子句中使用。
实例1
- int[] numbers = new[] { , , , , , , , , , };
- //传统下的子查询做法
- //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 % ==
- select n
- select num * evenNumbers.Count();
- foreach (var item in query)
- {
- Console.WriteLine(item);
- }
运行结果:0 5 10 15 20 25 30 35 40 45
实例2
- 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[] == 'a' || w[] == 'e'
- select word;
- foreach (var s in query)
- {
- Console.WriteLine(s);
- }
运行结果:
实例3
- List<Person> persons = new List<Person>
- {
- new Person { ID = "", Name = "张三" ,Gender = "男" , Age = },
- new Person { ID = "", Name = "李四" ,Gender = "女" , Age = },
- new Person { ID = "", Name = "王五" ,Gender = "女" , Age = },
- new Person { ID = "", Name = "赵六" ,Gender = "男", Age = }
- };
- var query = from p in persons
- let friendlyName = p.Gender == "男" ? "Mr" + p.Name : "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
- List<Person> persons = new List<Person>
- {
- new Person { ID = "", Name = "张三" ,Gender = "男" , Age = },
- new Person { ID = "", Name = "李四" ,Gender = "女" , Age = },
- new Person { ID = "", Name = "王五" ,Gender = "女" , Age = },
- new Person { ID = "", Name = "赵六" ,Gender = "男", Age = }
- };
- var query = from p in persons
- let gender = p.Gender
- let age = p.Age
- where age > && gender == "女"
- select p;
- foreach (var item in query)
- {
- Console.WriteLine("姓名: " + item.Name + " 年龄:" + item.Age);
- }
运行结果:
LINQ之let关键字的更多相关文章
- linq中let关键字学习
linq中let关键字就是对子查询的一个别名,let子句用于在查询中添加一个新的局部变量,使其在后面的查询中可见. linq中let关键字实例 1.传统下的子查询与LET关键字的区别 C# 代 ...
- Linq之常见关键字
目录 写在前面 系列文章 常见关键字 总结 写在前面 前面的几篇文章算是对linq的铺垫,从本篇开始将进行linq的语法及实践. 系列文章 Linq之Lambda表达式初步认识 Linq之Lambda ...
- Linq学习笔记(转)
开始Linq前你要知道的 扩展方法 顾名思义就是对现有类进行扩展的的方法,扩展方法可以在不修改现有类的情况下,为现有类增加公共的接口(不是C#中的interface). 扩展方法本质上是一个静态方法, ...
- linq入门系列导航
写在前面 为什么突然想起来学学linq呢?还是源于在跟一个同事聊天的时候,说到他们正在弄得一个项目,在里面用到了linq to sql.突然想到距上次使用linq to sql是三年前的事情了.下班回 ...
- Linq之Linq to Sql
目录 写在前面 系列文章 Linq to sql 总结 写在前面 上篇文章介绍了linq to xml的相关内容,linq to xml提供一种更便捷的创建xml树,及查询的途径.这篇文章将继续介绍l ...
- Linq之Linq to XML
目录 写在前面 系列文章 linq to xml 总结 写在前面 在很多情况下,都可以见到使用xml的影子.例如,在 Web 上,在配置文件.Microsoft Office Word 文件(将wor ...
- Linq之Linq to Objects
目录 写在前面 系列文章 linq to objects 总结 写在前面 上篇文章介绍了linq的延迟加载特性的相关内容,从这篇文章开始将陆续介绍linq to Objects,linq to xml ...
- Linq之延迟加载特性
目录 写在前面 系列文章 延迟加载 总结 写在前面 上篇文章介绍了linq中常见的几个关键字,并列举了几个例子,算是对linq如何使用有了初步了解.上篇文章中也提到了,能够使用linq的场合有一个要求 ...
- (转)Linq学习笔记
写在前面 最近在看Linq,在博客园看到这篇文章,写的通俗易懂,转来和大家一起做个分享.原文地址http://www.cnblogs.com/goscan/archive/2011/05/05/Lin ...
随机推荐
- Python之小练习
1.1 2 3 4 5 6 7 8能组成多少个不同的两位数? count = 0for i in range(1,9): for V in range(1,9): if i != V: count+= ...
- Windows 下 安装 laravel(一些小笔记)
首先 安装完composer 下载地址 https://getcomposer.org/ 在 cmd 进入到 自己的项目访问目录 然后 输入命令:composer creat ...
- ab压力测试nginx
centos7系统: yum install httpd-tools -y #安装ab压力测试工具
- websocket 11
1. websocket 回顾: - 什么是轮训? - 通过定时器让程序每隔n秒执行一次操作. - 什么是长轮训? - 浏览器向后端发起请求,后端会将请求 hang 住,最多hang 30s. 如果一 ...
- oracle-组件vault
===================== lsnrctl stopshutdown immediate;emctl stop dbconsolecd $ORACLE_HOME/rdbms/libma ...
- 3.2-1937 Problem D
#include <stdio.h> ; }; }; int main(void) { int n; while(scanf("%d", &n) != EOF) ...
- prettier-eslint 与 prettier-eslint-cli 区别
prettier-eslint 与 prettier-eslint-cli 区别: prettier-eslint 只能处理字符串 prettier-eslint-cli 能处理一个或多个文件 默认情 ...
- Http协议基础及发展历史
一.网络分层协议 经典五层模型 1.物理层:(电脑的硬件,网卡端口,网线,网线连出去的光缆) 定义物理设备如何传输数据 2.数据链路层 在通信的实体间建立数据链路连接. 两台机器物理上是可以连接在一起 ...
- AR外包,就找北京动点软件,长年承接AR外包(案例丰富可签合同,内附案例演示)
北京团队长年承接AR项目外包 咨询QQ:372900288 微信:liuxiang0884 以下是AR项目案例演示,索取更多案例请通过以上方式在线联系我们
- caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)
[转载来的文章:如有侵权,请联系我!我将马上删除!] 首先声明一下,如标题,本教程是caffe在windows系统上的配置方法,而且是github上官方BVLC/caffe目前推荐的配置方法,并不是使 ...