Lambda表达式select()和where()的区别

新建一个控制台程序ConsoleApplication1

1、where()用法:必须加条件,且返回对象结果。

static void Main(string[] args)
   {
       string[] arrays={"asd","abc","bbb","ccc"};
       var results = arrays.Where(a=>a.Contains("b"));//必须加条件,返回对象

foreach(var da in results )
 {
        Console.WriteLine(da);
 }

Console.WriteLine("按任意键可退出!");
      Console.ReadKey();
   }

结果:abc  bbb。

2、select()用法:(1)(a=>a.Value=="22")加条件查询时,返回bool型结果;(2)(a=>a)没条件返回对象

(1)(a=>a.Value=="22")加条件查询时,返回bool型结果

static void Main(string[] args)
{
    string[] arrays={"asd","abc","bbb","ccc"};
    var results = arrays.Select(a => a.Contains("b"));//1、(a=>a.Value=="22")加条件查询时,返回bool型结果

foreach(var da in results )
    {
         Console.WriteLine(da);
    }

Console.WriteLine("按任意键可退出!");
   Console.ReadKey();
}

结果:False  True  True  False

(2)(a=>a)没条件返回对象

static void Main(string[] args)
{
    string[] arrays={"asd","abc","bbb","ccc"};
    var results = arrays.Select(a => a);//1、(a=>a)没条件,返回所有对象;

foreach(var da in results ) 
   {
        Console.WriteLine(da);
   }

Console.WriteLine("按任意键可退出!");
   Console.ReadKey();
}

结果:asd  abc   bbb   ccc 

时间: 2024-11-05 17:32:23

Lambda表达式select()和where()的区别的相关文章

委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件

1. 委托 From: http://www.cnblogs.com/daxnet/archive/2008/11/08/1687014.html 类是对象的抽象,而委托则可以看成是函数的抽象.一个委托代表了具有相同参数列表和返回值的所有函数. [csharp] view plaincopy class Program { delegate int CalculateDelegate(int a, int b); int add(int a, int b) { return a + b; } s

Java8 Lambda表达式详解手册及实例

先贩卖一下焦虑,Java8发于2014年3月18日,距离现在已经快6年了,如果你对Java8的新特性还没有应用,甚至还一无所知,那你真得关注公众号"程序新视界",好好系列的学习一下Java8的新特性.Lambda表达式已经在新框架中普通使用了,如果你对Lambda还一无所知,真得认真学习一下本篇文章了. 现在进入正题Java8的Lambda,首先看一下发音 ([?l?md?])表达式.注意该词的发音,b是不发音的,da发[d?]音. 为什么要引入Lambda表达式 简单的来说,引入La

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) => {

取代DataTable Select方法 并动态拼接Lambda表达式

原来的程序里面,有这样一段代码 var parentFilterString = string.Empty; parentFilterString = exceptList.Aggregate(parentFilterString, (current, id) => current + (" " + parentFieldName + " = '" + id + "' or")); parentFilterString = parentFi

闭包(Closure)和匿名函数(Anonymous function)/lambda表达式的区别

闭包(Closure)和匿名函数(Anonymous function)/lambda表达式的区别 函数最常见的形式是具名函数(named function): function foo(){ console.log("named function") } foo() 不过也可以将函数视作数据赋值给变量,这样的函数可以没有名字: nameless = function(){ console.log("anonymouse function") } nameless(

lambda表达式Expression<Func<Person, bool>> 、Func<Person, bool>区别

前言: 自己通过lambda表达式的封装,将对应的表达式转成字符串的过程中,对lambda表达式有了新的认识 原因: 很多开发者对lambda表达式Expression<Func<Person, bool>> .Func<Person, bool>表示存在疑惑,现在就用代码举个简单列子 原代码: using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expres

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

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

什么是表达式树,它与表达式、委托有什么区别?

序言 首先,需要普及下基础知识: Expression我们称之为:表达式树, 而Func<>或者Action 称之为:匿名委托,Func与Action的区别是Func带返回值(至少一个参数),Action不带返回值(可以没有任何参数). 以上的关键词是在.net 3.5之后出现的,配合Linq中Lambda使用. 当然Expression还可以动态的进行构造它,而不使用Lambda表达式来定义. 什么是表达式树 它是一种数据结构体,用于存储需要计算.运算的一种结构.这种结构可以只是”存储“,而