Unity3D C#中使用LINQ查询(与 SQL的区别)
学过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的区别)的更多相关文章
- 如何在C#中调试LINQ查询
原文:How to Debug LINQ queries in C# 作者:Michael Shpilt 译文:如何在C#中调试LINQ查询 译者:Lamond Lu 在C#中我最喜欢的特性就是LIN ...
- LINQ查询表达式(2) - 在 C# 中编写 LINQ 查询
在 C# 中编写 LINQ 查询 C# 中编写 LINQ 查询的三种方式: 使用查询语法. 使用方法语法. 组合使用查询语法和方法语法. // 查询语法 IEnumerable<int> ...
- Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)
为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...
- 【mybatis】mybatis中放置IN查询拼接sql过长,IN查询进行分批次查询的处理
需要使用的切割list集合的工具类,链接:https://www.cnblogs.com/sxdcgaq8080/p/9376947.html 处理逻辑,原本的一个LIst,进行切割,循环进行myba ...
- ACTION 中 单表查询语句 SQL写法
JSP页面 <tr> <td class="STYLE1"> <div align="center"> // 单击事件 调用 ...
- unity3D脚本中,update ,fixupdate 和lateupdate的区别
1.MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用. 2.MonoBehaviour.FixedUpdate 固定更新 当MonoBe ...
- C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询
1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法 ...
- Javascript实现Linq查询方式
Linq是.net平台一个重要的技术,全称Language Integrated Query.通过构建快速查询语句,可快速从数据库或集合中筛选数据集.以查询数据库相同的方式操作内存数据. 在ECMAS ...
- 查询拼接SQL语句,多条件模糊查询
多条件查询,使用StringBuilder拼接SQL语句,效果如下: 当点击按钮时代码如下: private void button1_Click(object sender, EventArgs e ...
随机推荐
- 【openstack N版】——创建云主机
一.启动实例 1.1 已准备服务介绍 MySql:为各个服务提供数据存储. RabbitMQ:为各个服务之间通信提供交通枢纽. keystone:为各个服务之间通信提供认证和服务注册. Glance: ...
- [数据挖掘] - 聚类算法:K-means算法理解及SparkCore实现
聚类算法是机器学习中的一大重要算法,也是我们掌握机器学习的必须算法,下面对聚类算法中的K-means算法做一个简单的描述: 一.概述 K-means算法属于聚类算法中的直接聚类算法.给定一个对象(或记 ...
- session 与 cookie的区别用法
//设置cookie方法 setcookie("name",'zhangsan'); setcookie("name",'zhangsan',time()+60 ...
- Python 3 读写文件的简单方法!
Python 3 读写文件的简单方法! a = open('test.txt','w') 这行代码创建了一个名为test的文本文档,模式是写入(模式分为三种,w代表写入,r代表阅读,a代表在尾行添加) ...
- Oracle 字符集设置
因为装Linux系统时选择的是英文版,所以当需要测试中文数据库时会出现乱码,这里记录一下我修改字符集的操作. 一些命令: 1.查看sqlplus客户编码: $ echo $NLS_LANG 2.查看 ...
- asp.net 后台任务作业框架收集
收集几个可以用于 asp.net 的后台任务工具库并简单介绍. hangfire.io 支持 单次任务(Fire-and-forget),延时任务(Delayed),重复任务(Recurring ), ...
- Html<img>标签特写 2017-03-10 AM
1.插入图片 <img src="picture1.gif" width="300" height="100" title=" ...
- 1441: Min
1441: Min Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 320 Solved: 213[Submit][Status][Discuss] De ...
- JSON的服务器开发之路
JSON的服务器开发之路 不知道需要哪儿些包... /dcywpt/WebRoot/WEB-INF/lib/commons-collections-3.2.jar /dcywpt/WebRoot/WE ...
- mongodb选型问题
一.Mongodb的介绍 MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便. MongoDB工作在收集和文件的概念. 数据库 数据库是一个物理容器集合.每个数据库都 ...