lambda表达式和查询表达式
(1)Lambda表达式定义:
Lambda是创建匿名函数的另一种形式。它比对应的匿名方法更加的简化。因此,所有的情况都推荐使用Lambda表达式。
它可以包括表达式和语句,并且用于创建委托和事件。
Lambda表达式由输入参数,Lambda运算符和表达式构成。它的语法如下:(wdd)=>wdds wdd 表示输入的参数。
=>为运算符,wdds为表达式或者语句模块。
例1.下面创建一个Lambda表达式:m=>m*m; 分析:输入参数m的值,然后计算出m的平方,并返回计算的结果。
例2:创建一个Lambda表达式,并获取该值:int n=(int m)=>m*m; 分析:输入参数m,计算出m的平方,并把返回计算的结果赋值给n;
参考代码为:
Class Program
{
delegate int delA(int m);
static void Main(string[] args)
{
delA n= (m) => { return m*m; };
Console.WriteLine(e(2,3));
Console.ReadKey();
}
}
例3:创建一个Lambda表达式,并获取该值:int n=(int m,int y)=>m*y; 分析:输入参数m,y,计算出m和y的乘积,并把返回计算的结果赋值给n;
参考代码为:
Class Program
{
delegate int delA(int m,int y);
static void Main(string[] args)
{
delA n= (m,y) => { return m*y; };
Console.WriteLine(e(2,3));
Console.ReadKey();
}
}
多个Lambda表达式可以构成Lambda语句块,语句块可以放在运算符的右边,作为Lambda的主体,根据主体不同,
Lambda表达式可以分为:表达式Lambda和语句Lambda。语句模块中可以包含多条语句,并且可以包括循环,方法
调用和if语句等。
如果Lambda运算符右边是一个语句块,则必须要有{和}包围语句块。
(2)Lambda查询表达式
查询表达式是一种查询语法表示的表达式,它用于查询和转换来自任意支持LINQ的数据源中的数据。查询表达式使用许多常见的
C#语言构造,易读简洁,容易掌握。它由一组类似于SQL或者XQuery的声明型语法编写的字句组成,每一个字句可以包含一个或
者多个C#表达式。这些表达式本身也可以是查询表达式,或者包含表达式。
- 查询表达式必须以from字句开头,以select或group 字句结束。
- from字句:指定查询操作的数据源和范围变量。
- select字句:指定查询结果的类型和表现形式。
- where字句:指定筛选元素的逻辑条件。
- let字句:引入用来保存查询表达式中字句查询结果的范围变量
- order by:对查询字句进行排序操作 ,包括升序和降序。
- group :对查询结果进行分组。
- into字句:提供一个临时标识符,join字句,group字句或者select字句可以通过该标识符引用查询操作中的中间结果。
- join字句:用来连接多个查询操作的数据源。
lambda表达式和查询表达式的更多相关文章
- 查询表达式和LINQ to Objects
查询表达式实际上是由编译器“预处理”为“普通”的C#代码,接着以完全普通的方式进行编译.这种巧妙的发式将查询集合到了语言中,而无须把语义改得乱七八糟 LINQ的介绍 LINQ中的基础概念 降低两种数据 ...
- LINQ 查询表达式(C# 编程指南)
语言集成查询 (LINQ) 是一组技术的名称,这些技术建立在将查询功能直接集成到 C# 语言(以及 Visual Basic 和可能的任何其他 .NET 语言)的基础上. 借助于 LINQ,查询现在 ...
- Linq之查询表达式语法详解
1.闲言碎语 由于项目的需要接触到Linq,刚开始有些不适应,好多概念都很模糊.不过经过一段时间的摸索,慢慢地对Linq有了一个更加深入的了解.在此记录一下备忘. 2.查询表达式语法 执行L ...
- 2.1 LINQ的查询表达式
在进行LINQ查询的编写之前,首先需要了解查询表达式.查询表达式是LINQ查询的基础,也是最常用的编写LINQ查询的方法. 查询表达式由查询关键字和对应的操作数组成的表达式整体.其中,查询关键字是常用 ...
- LINQ查询表达式基础
LINQ,语言集成查询(Language Integrated Query)是一组用C#和Visual Basic语言的扩展. 对于编写查询的开发人员来说,LINQ 最明显的"语言集成&qu ...
- [转]查询表达式 (F#)
本文转自:http://msdn.microsoft.com/zh-cn/library/hh225374.aspx 查询表达式可以查询数据源并将数据是一种预期形式. 查询表达 ...
- (五)lucene之特定项搜索和查询表达式
需求:模糊搜索. 前提: 本例中使用lucene 5.3.0 package com.shyroke.lucene; import java.io.File; import java.io.File ...
- C# Lambda表达式和linq表达式 之 匿名对象查询接收
很多小伙伴都用过Lambda表达式和linq表达式,用起来也得心应手,但是有的小伙伴 对匿名对象的查询与接收比较迷茫,(没有定义相应的实体),怎么在where()里面进行 条件筛选呢?常规用法我就不说 ...
- C# LINQ查询表达式用法对应Lambda表达式
C#编程语言非常优美,我个人还是非常赞同的.特别是在学习一段时间C#后发现确实在它的语法和美观度来说确实要比其它编程语言强一些(也可能是由于VS编译器的加持)用起来非常舒服,而且对于C#我觉得他最优美 ...
随机推荐
- lsyncd 实时同步
1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify + rsync,但随着文件数量的增大到100W+,目录下的 ...
- Java 反射 getDeclareFields getModifiers setAccessible(true)
示例代码: public static Map<String, Object> dtoToMap(Object obj, String pre, String las ...
- 添加AppWidget功能
要为程序添加AppWidget 1 首先要建立一个继承于AppWidgetProvider的类 MyWidget public class MyWidget extends AppWidgetProv ...
- 主机映射Linux虚拟机硬盘到本地
Windows7上面通过VMware装了一个ubuntu的虚拟机,为了方便在window下直接查看和编辑linux系统下的代码,就想着远程映射硬盘,把Ubuntu的硬盘映射到主机中. 硬盘映射需要Sa ...
- AES加密算法实现
AES算法是一种对称加密算法,是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准. 下文实例中,密钥采用了直接写死的方式,实际使用中可以配合RSA加密算法加密密钥,从而达到更好的安全效 ...
- Oracle去掉字符串首尾
今天刚注册博客,与大家分享一下今天的新的: 今天在报表中碰到这样一个需求,数据库里面的一个字段是其他的3个字段合成的,但是现在读取数据只要中间的那一部分, 思考了许久这个字段的中间部分不是固定的,头和 ...
- JS获取文本值
var closeBtn=document.getElementById("close_btn"): closeBtn.innerHTML即是文本值,如果要的是数字parseInt ...
- (Hibernate进阶)Hibernate映射——一对多关联映射(七)
一对多关联映射 映射原理 一对多关联映射和多对一关联映射的映射原理是一致的,都是在多的一端加入一个外键,指向一的一端.关联关系都是由多端维护,只是在写映射时发生了变化. 多对一和一对多的区别 多对一和 ...
- 样式:让div里的两个控件在一行的操作
table的td里如果放一个text,希望在右侧再放一个按钮,让这两个控件在一行,但是放了之后总是底部不能对齐,这样的话,加上下边这句样式就可以了 position:relative; top:17p ...
- 【转】MaxScript.Net接收本地端口的消息执行
MaxScript里开不了线程,但是可以用.Net的BackgroundWorker来做后台处理 BackgroundWorker Fn BackgroundTcpListenerDoWork the ...