lambda表达式中的Select和Where的区别?

Select()操作符:可以将序列中的每个元素投影到新表中,即取出哪些属性(字段),其实和sql中的select差不多的意思。

Where()操作符:是用于对序列中的元素进行过滤和筛选,类似sql中是where字句

例如:

注意:Select()对每一条数据进行投影到一张新的表中

new {p.Name}  使用了匿名类,该匿名类中只包含原表中的Name字段,相当与取Name字段,和sql中的select查询一样

总结:Where()操作符是用于过滤用的,和sql中的where字句一样。

那如果此时想查询出年龄为18岁的人的姓名(也就是说此时只要Name字段),该怎么写?

原文地址:http://blog.51cto.com/11871779/2148104

时间: 2024-11-07 16:24:00

lambda表达式中的Select和Where的区别?的相关文章

boost在lambda表达式中调用占位符参数的成员函数的方法

boost中提供了lambda表达式的用法,但是lambda表达式的功能还不是很强大,在其中只能对lambda的占位符参数_1等使用最基本的操作符,如+-*/,可是很多时候如果传入的占位符参数是一个对象指针的话,我们可能想要调用这个类的成员函数. 我在开发中遇到了这个问题,需要在stl的算法中传入一个函数来调用对象的比较函数,因为感觉这样太麻烦,还需要重新定义一个函数,所以想起了lambda表达式,c++11的lambda表达式我倒是没试过,可是受项目开发环境所限,只能选择boost.但是我用的

在Lambda表达式中使用循环变量

在C#5.0之前的版本中,如果在foreach循环中的lambda使用循环变量,那么你会发现一些意想不到的现象,例子如下: var integers = new List<int> { 1, 2, 3, 4 }; var actions = new List<Action>(); foreach (var integer in integers) { actions.Add(() => Console.WriteLine(integer)); } actions.ForEac

Lambda表达式中的表达式lambda和语句lambda区别

Lambda表达式可分为表达式lambda和语句lambda 表达式lambda:表达式位于 => 运算符右侧的lambda表达式称为表达式lambda (input parameters) => expression //表达式lambda 例如 (x, y) => x == y 语句lambda:=> 运算符右侧是一个语句块,语句包含在大括号中 (input parameters) => {statement;} //语句lambda 例如: (x, y) => {

(转) Lambda表达式中的表达式lambda和语句lambda区别

Lambda表达式可分为表达式lambda和语句lambda 表达式lambda:表达式位于 => 运算符右侧的lambda表达式称为表达式lambda (input parameters) => expression //表达式lambda 例如 (x, y) => x == y 语句lambda:=> 运算符右侧是一个语句块,语句包含在大括号中 (input parameters) => {statement;} //语句lambda 例如: (x, y) => {

lambda表达式中的空指针问题

今天看demo环境阿里云的日志,发现有报空指针,既然这样那就解决一下呗. 报错代码如下. 很显然 shipment为空 调用处的代码如下 突然发现气氛陷入了尴尬的沉默.如果说shipments为空的话,lambda表达式是不会进行的.那么这个空指针是从哪里来的呢? 再跟一下. 调用处在这里. 那么我们可以猜一下,应该是shipments本身不为空,但是里面的元素为null. 试了一下,果然OK了. 原文地址:https://www.cnblogs.com/tyoutetu/p/11498498.

Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别

function write(msg){ for(var i = 0; i < arguments.length; i ++){ document.write(arguments[i] + '<br />'); } } //关于 '&&' test1 = 1 && 2 && 3 && 4; test2 = '0' && 2 && 3 && 4; test3 = 1 &&

Lambda表达式中使用正则表达式

某语句如果不用正则表达式: string[] names = { "Tom", "Dick", "Harry", "Mary", "Jay" }; IEnumerable<string> query = names.Select(n => n.Replace("a", "").Replace("e", "").

.NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式

开篇:在上一篇中,我们了解了匿名类.匿名方法与扩展方法等所谓的新语法,这一篇我们继续征程,看看系统预定义委托(Action/Func/Predicate)和超爱的Lambda表达式.为了方便码农们,.Net基类库针对实际开发中最常用的情形提供了几个预定义好的委托,这些委托可以直接使用,无需再重头定义一个自己的委托类型.预定义委托在.Net基类库中使用的比较广泛,比如在Lambda表达式和并行计算中都大量地使用,需要我们予以关注起来! /* 新语法索引 */ 1.自动属性 Auto-Impleme

C#中Lambda表达式总结

在C#的语法中有一种比较特殊的写法,叫做Lambda表达式,这种表达式的写法在于你查询数据的时候直接是使用以下箭头的形式来表示查询语句的:=>.例如,我们要查找学生的List<Student>集合中班级编号为1001的所有学生数据,我们即可用Studentlist.Where(t=>t.ClassCode='1001')语句来直接完成,无需再写繁琐的foreach语句或者for循环.Lambda表达式的运算符即为=>. 一.Lambda表达式定义 Lambda表达式实际上是一