可能很多同学和我一样对于select()和where()区别并不是太清晰,其实两者还是有本质区别的。

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

static void Main(string[] args)
   {

List<Person> listPerson = new List<Person>();
listPerson.Add(new Person { Name = "Alice", Address = "北京", Age = 30 });
listPerson.Add(new Person { Name = "Joe", Address = "上海", Age = 34 });
listPerson.Add(new Person { Name = "Cat", Address = "广州", Age = 24 });
listPerson.Add(new Person { Name = "Alan", Address = "深圳", Age = 26 });
listPerson.Add(new Person { Name = "Tom", Address = "重庆", Age = 28 });
listPerson.Add(new Person { Name = "Jarrey", Address = "天津", Age = 40 });

IEnumerable<Person> results = listPerson.Where(p => p.Name.Contains("a"));//必须加条件,返回对象

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

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

结果:Cat Alan Jarrey。

Alice虽然也包含a但是是大写的A,所以输出结果是不会包含Alice。

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"));//加条件查询时,返回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={"12","13","14","15"};
    var results = arrays.Select(a => a);//没条件,返回所有对象;

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

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

结果:12 13 14 15

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

  1. EF core 中用lambda表达式和Linq的一些区别

    转眼一看,又过了10几天没有写博客了,主要还是没有什么可以写的,因为遇到的问题都不是很有价值.不过最近发现用lambda表达式,比用Linq的代码量会少一些,而且也方便一些.不过两者都差不多,相差不是 ...

  2. lambda表达式和groovy闭包的区别

    groovy定义的闭包是 Closure 的实例,lambda表达式只是在特定的接⼝或者抽象类的匿名实现,他们之间最主要区别闭包可以灵活的配置代理策略⽽labmda表达式不允许

  3. C#基础:Lambda表达式

    从委托的角度来看,Lambda表达式与匿名方法没有区别.在[C#基础:匿名方法]一文中,我使用了匿名方法来调用List<T>的FindAll方法.从C# 3.0开始,在使用匿名方法的地方, ...

  4. 深入浅出 Java 8 Lambda 表达式

    摘要:此篇文章主要介绍 Java8 Lambda 表达式产生的背景和用法,以及 Lambda 表达式与匿名类的不同等.本文系 OneAPM 工程师编译整理. Java 是一流的面向对象语言,除了部分简 ...

  5. 委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件【转】

    1. 委托 From: http://www.cnblogs.com/daxnet/archive/2008/11/08/1687014.html 类是对象的抽象,而委托则可以看成是函数的抽象.一个委 ...

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

    先贩卖一下焦虑,Java8发于2014年3月18日,距离现在已经快6年了,如果你对Java8的新特性还没有应用,甚至还一无所知,那你真得关注公众号"程序新视界",好好系列的学习一下 ...

  7. 转载:深入浅出 Java 8 Lambda 表达式

    原文地址:http://viralpatel.net/blogs/Lambda-expressions-java-tutorial/ OneAPM for Java 能够深入到所有 Java 应用内部 ...

  8. 为什么Java中lambda表达式不能改变外部变量的值,也不能定义自己的同名的本地变量呢?

    作者:blindpirate链接:https://www.zhihu.com/question/361639494/answer/948286842来源:知乎著作权归作者所有.商业转载请联系作者获得授 ...

  9. 浅析匿名函数、lambda表达式、闭包(closure)区别与作用

    浅析匿名函数.lambda表达式.闭包(closure)区别与作用 所有的主流编程语言都对函数式编程有支持,比如c++11.python和java中有lambda表达式.lua和JavaScript中 ...

随机推荐

  1. wordpress 无法发送邮件

    前几天创建了几个wordpress项目,有些项目中用到了用户注册,但是在实际操作中发现,用户注册无法接收到认证链接,在查找了相关资料后大多归类为几个原因: 服务器本身不支持mail()函数 未配置相关 ...

  2. 启动Jmeter4.0 后弹出命令窗口提示信息是什么意思?

    启动Jmeter4.0 后弹出命令窗口提示信息: =========================================================================== ...

  3. 并发编程---线程queue---进程池线程池---异部调用(回调机制)

    线程 队列:先进先出 堆栈:后进先出 优先级:数字越小优先级越大,越先输出 import queue q = queue.Queue(3) # 先进先出-->队列 q.put('first') ...

  4. NgDL:第四周深层神经网络

    4.3核对矩阵维数 根据前向的矩阵,可以计算出右上的规律,对于第L层的w来说,其维数为(n[L],n[L-1]),n[L]表示第L层的单元数. 4.4为什么深层神经网络会好用? 如果要做一个人脸识别的 ...

  5. 新手详解JAVA+数据库+JSP完成简单页面

    本篇以数据库添加为例(本例中数据库名为“xinxi”表单名字为“stud”) 准备---实体层: package entity; public class Student { private Stri ...

  6. 无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。

    将项目部署到服务器后发现有如下问题,查了网上好多说是需要被序列化的类没有写上[Serializable]标志,所以把全部需要序列化的列都写上了标志发现还是不是,最后查到了发现网上说的并不太准确,而是需 ...

  7. PyQT5速成教程-3 布局管理

    本文由 沈庆阳 所有,转载请与作者取得联系! 布局(Layout)管理 Qt Designer中,在工具箱中最上方可以看到有4种布局.分别是垂直布局.水平布局.栅格布局和表单布局.   四种布局 布局 ...

  8. 原生js---ajax---get方法传数据

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. BCB Access violateion at Address 0000 0003. Read of address 0000 0003

    来自网页:(我的电脑做不到) 运行一个程序,莫名出现一个对话框:access violation at address 0000.. read of address000试了几次问题依旧,网上搜了下解 ...

  10. java.lang.NoClassDefFoundError: org/hibernate/QueryTimeoutException

    在做ssh整合的时候报错:java.lang.NoClassDefFoundError: org/hibernate/QueryTimeoutException org.springframework ...