Linq Lambda表达式详细介绍

C#3.0有很多值得学习的地方,这里我们主要介绍Linq查询,包括介绍Linq Lambda表达式等方面。

C#3.0时代的Linq查询语句

在C#3.0中我们又有了改善代码的新工具。

匿名委托很不错,但是我们希望有更简单的,更容易维护的代码。C#3.0提供了Linq Lambda表达式的 概念,你可以把Linq Lambda表达式是我们应用匿名委托的捷径,下面是用Linq Lambda表达式重写的查询 :

static IEnumerable<Employee>
GoldWatch(IEnumerable<Employee> employees) {
return Filter(employees,
  employee => employee.Years>3
);
}

static IEnumerable<Employee>
SalesForce(IEnumerable<Employee> employees) {
return Filter(employees,
employee => employee.Department=="Sales"
);
}

这段代码相当简单而且也很容易维护,但还存在一些问题。

◆GoldWatch(employees)

◆SalesForce(employees)

当你看到这样的调用的时候就会意识到这个问题,从OO的视角来看,我们已经熟悉了noun.verb()这样 的调用形式,理想情况下,我们希望用这样的语法能查询一个集合:

◆employees.GoldWatch()

◆employees.SalesForce()

时间: 2024-11-30 23:48:13

Linq Lambda表达式详细介绍的相关文章

Linq Lambda表达式全面分析

在向大家详细介绍Linq Lambda表达式之前,首先让大家了解下expr是什么样的东西,然后全面介绍 Linq Lambda表达式. 介绍Linq Lambda表达式之前,先看一个例子: Expression<Func<string, bool>> expr = o => o.Length > 10; 初次接触Linq Lambda表达式的人可能会被搞迷糊,这样的语句到底是什么意思,怎么样工作,原理又 是什么. 逐级分析以上语句,分为两个部分,以等号为界. 第一部分是

Javascript优化技巧之短路表达式详细介绍

 这篇文章主要介绍了Javascript优化技巧之短路表达式详细介绍,本文讲解了什么是短路表达式,并给出了一些示例,需要的朋友可以参考下     什么是短路表达式? 短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值.这是这两个操作符的一个重要属性. 一个最简单的例子:   代码如下: foo = foo||bar;   这行代码是什么意思?答案:  

JSP EL表达式详细介绍

一.JSP EL语言定义 E L(Expression Language) 目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法.它是一种简单的语言,基于可用的命名空间(PageContext 属性).嵌套属性和对集合.操作符(算术型.关系型和逻辑型)的访问符.映射到 Java 类中静态方法的可扩展函数以及一组隐式对象. EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能.脚本编制元素是

JSP EL表达式详细介绍_JSP编程

一.JSP EL语言定义         E L(Expression Language)  目的:为了使JSP写起来更加简单.        表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法.它是一种简单的语言,基于可用的命名空间(PageContext 属性).嵌套属性和对集合.操作符(算术型.关系型和逻辑型)的访问符.映射到 Java 类中静态方法的可扩展函数以及一组隐式对象.        EL 提供了在 JSP 脚本编制元

Javascript优化技巧之短路表达式详细介绍_javascript技巧

什么是短路表达式? 短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值.这是这两个操作符的一个重要属性. 一个最简单的例子: 复制代码 代码如下: foo = foo||bar; 这行代码是什么意思?答案: 复制代码 代码如下: //如果foo存在,值不变,否则把bar的值赋给foo if(!foo)     foo = bar; 在javascrip

php 运算符与表达式详细介绍_php实例

php 运算符与表达式 一.运算符的分类 1.按操作数分类 1.!true // 一元运算符 2.$a+$b // 二元运算符 3.true ? 1:0 // 三元运算符 2.按操功能分类 (1)算术运算符 1.+.-.x./.%(取余) (2)字符串运算符 1..  // 例如:$a = 'abc'.'efg'; (3)赋值运算符 1.= // 简单赋值 2.+=.-=.X=./=.%=..= // 复合赋值 3.++($a++.++$a). --($a--.--$a) // 递增递减 4.&

php 运算符与表达式详细介绍

php 运算符与表达式 一.运算符的分类 1.按操作数分类 1.!true // 一元运算符 2.$a+$b // 二元运算符 3.true ? 1:0 // 三元运算符 2.按操功能分类 (1)算术运算符 1.+.-.x./.%(取余) (2)字符串运算符 1..  // 例如:$a = 'abc'.'efg'; (3)赋值运算符 1.= // 简单赋值 2.+=.-=.X=./=.%=..= // 复合赋值 3.++($a++.++$a). --($a--.--$a) // 递增递减 4.&

Linq之Lambda表达式初步认识

目录 写在前面 匿名方法 一个例子 Lambda 定义 一个例子 总结 参考文章 写在前面 元旦三天在家闲着无事,就看了看Linq的相关内容,也准备系统的学习一下,作为学习Linq的前奏,还是先得说说Lambda与匿名方法的知识点.也算是对知识点的查漏补缺吧,也许你会说这没啥大不了的,项目中都在用,但是有些知识,你回头在查看的时候,总会有那么点不一样的收获,这点我是感同身受的,我看书有个习惯,一本书,我能看个三四遍,每次总会有收获.当然,你可以说,当时肯定没认真看,不是那样子的,我认为最直接的原

SQL、LINQ和Lambda表达式

首先说说这三者完全是三种不同的东西,SQL是结构化查询语言(Structured Query Language)简称,这大家再熟悉不过了,下面主要介绍LINQ和Lambda表达式的基本概念以及同一查询这三者的不同实现. 简单介绍 LINQ(Language Integrate Query)是语言集成查询他在对象和数据之间建立一种对应的关系,可以使用访问内存对象的方式查询数据集合.LINQ查询是C#中的一种语言构造.因此开发人员可以再C#代码汇总嵌套类似于SQL语句的查询表达式,从而实现数据查询的