学过SQL的一看就懂

LINQ代码很直观

但是,LINQ却又跟SQL完全不同

首先来看一下调用LINQ的代码

int[] badgers = {36,5,91,3,41,69,8};

var skunks =

  from pigeon in badgers

  where (pigeon != 36 && pigeon <50)

  orderby pigeon descending

  select pigeon + 5;

var bears = skunks.Take(3);

Debug.Log("Get your kicks on route {0}",weasels.Sum());

LINQ与SQL最大的不同就在于

SQL查询的是数据库表,而LINQ查询的是对象

也就是说,SQL查询的是集合,而LINQ查询的是可以储存的任何内容,可以是值、struct、对象等。

这就形成了最大的区别:SQL表没有顺序,而LINQ查询的内容是有顺序的

从代码行来看

SQL语句把SELECT放在第一句

而LINQ将SELECT放在了最后一句

两者同样具有where,orderby等语句

LINQ并不只是查询并获取数据项

LINQ还提供了管理数据所需要的各种工具

例如上面代码的 select pigeon + 5;

作用为将每个数字加5后输出

类似地,还有LINQ定义的一些方法,如Count(),Min(),Max(),Sum(),Average()等

LINQ是什么原理呢

首先,需要循环处理整个对象

然后,将每个值与where条件作比较

最后,收集结果储存在代码中以供使用

因此LINQ代码的优缺点一目了然:

优点:C#把大量行为压缩到几行代码中,可以用很少的代码完成复杂的工作

缺点:性能相对不高。for手写代码比用LINQ代码速度快十几倍(网友测试结论)

注意:LINQ查询会有“延迟计算”

也就是说,访问LINQ查询的结果之前并不会真正运行LINQ查询

这算是一种性能机制

当然,也可以使用ToList()告诉LINQ立即执行查询

Unity3D C#中使用LINQ查询(与 SQL的区别)的更多相关文章

  1. 如何在C#中调试LINQ查询

    原文:How to Debug LINQ queries in C# 作者:Michael Shpilt 译文:如何在C#中调试LINQ查询 译者:Lamond Lu 在C#中我最喜欢的特性就是LIN ...

  2. LINQ查询表达式(2) - 在 C# 中编写 LINQ 查询

    在 C# 中编写 LINQ 查询 C# 中编写 LINQ 查询的三种方式: 使用查询语法. 使用方法语法. 组合使用查询语法和方法语法. // 查询语法 IEnumerable<int> ...

  3. Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)

    为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...

  4. 【mybatis】mybatis中放置IN查询拼接sql过长,IN查询进行分批次查询的处理

    需要使用的切割list集合的工具类,链接:https://www.cnblogs.com/sxdcgaq8080/p/9376947.html 处理逻辑,原本的一个LIst,进行切割,循环进行myba ...

  5. ACTION 中 单表查询语句 SQL写法

    JSP页面 <tr> <td class="STYLE1"> <div align="center"> // 单击事件 调用 ...

  6. unity3D脚本中,update ,fixupdate 和lateupdate的区别

    1.MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用. 2.MonoBehaviour.FixedUpdate 固定更新 当MonoBe ...

  7. C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询

    1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法 ...

  8. Javascript实现Linq查询方式

    Linq是.net平台一个重要的技术,全称Language Integrated Query.通过构建快速查询语句,可快速从数据库或集合中筛选数据集.以查询数据库相同的方式操作内存数据. 在ECMAS ...

  9. 查询拼接SQL语句,多条件模糊查询

    多条件查询,使用StringBuilder拼接SQL语句,效果如下: 当点击按钮时代码如下: private void button1_Click(object sender, EventArgs e ...

随机推荐

  1. 301、404、200、304、500HTTP状态

    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务器超时 下面提供 HTTP 状态码的完整列表.点击链接可了解详情.您也可以访问 HTTP 状态码上的 ...

  2. spring-framework-reference阅读笔记(一)

    Spring Framework Runtime 首先需要对Spring FrameWok框架有个直观的认识 Java日志框架的发展史 在读到Spring依赖JCL的时候,对Java的日志系统做点普及 ...

  3. 1613: [Usaco2007 Jan]Running贝茜的晨练计划

    1613: [Usaco2007 Jan]Running贝茜的晨练计划 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1252  Solved: 609 ...

  4. ReactJS React+Redux+Router+antDesign通用高效率开发模板,夜间模式为例

    工作比较忙,一直没有时间总结下最近学习的一些东西,为了方便前端开发,我使用React+Redux+Router+antDesign总结了一个通用的模板,这个技术栈在前端开发者中是非常常见的. 总的来说 ...

  5. 在VM中给Linux安装Tool

    1.导入tool 2.解压tool 3.打开终端,进入tool的目录,输入  ./XXXXXXX.pl 4.进入安装界面,不断回车即可

  6. Telnet 在win7 和 xp中的使用

    telnet 默认在开启之后 监听23端口.最近在尝试使用这个服务 虽然很多机器默认是不开启telnet这个服务的 但是 万一能够碰到 也是为了自己以后能够熟练起来咯. telnet有服务器跟客户端之 ...

  7. 跑马灯、短信与反射EditText

    1.1.跑马灯功能 Android自带支持跑马灯功能,实现此功能需要设置已下属性: android:ellipsize="marquee" // 必选,跑马灯样式 android: ...

  8. [LeetCode] Decode String 题解

    题目 题目 s = "3[a]2[bc]", return "aaabcbc". s = "3[a2[c]]", return " ...

  9. iOS开发之JSON & XML

    1.概述 JSON (1) 作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式 (2) 基于JavaScript的一个子集 (3) 易读性略差,编码手写难度大,数据量小 (4) ...

  10. trimpath javascript的学习

    TrimPath是javascript模板引擎. 这几天有一个项目涉及到trimpath这个框架,所以就花了一点时间研究了一下,这个框架和别的javascript框架不太一样的地方就是模板的概念,就是 ...