复习linq
复习linq
linq的英文是language integrated query。其中query的意思就是疑问或者计算机用语就是从资料库中提取信息的要求,可以理解为查询的意思。那么它翻译过来的话就是集成查询语言。其命名空间是:System.Linq。
它的基本写法如下:
from 一个临时的变量 in 一个实现了IEnumeralbe<T>接口的对象。
where 条件
order by 条件
group by 条件
select 上面那个临时的变量
然后也许有人会问,为什么不是以select开头,而是以from开头的。我只是记得以前微软老以前的linq是select写在前面的,后面发现那样写不好,就改成了先写from,大概原因,好像是因为智能感知会很麻烦。具体情况我也不大清楚。我是记得这个用法,也就未求甚解了。有兴趣的博友,如果知道原因,可在下面留言告之。对于以上的那个对象需要是实现了IEnumerable<T>接口的对象才可以的。比如,说数组,我们在VS上敲上Array然后光标置之其的F12转到定义会看到
这个图,那么就说明数组才可以用LINQ的。
小举一例,现在一个Int数组,要求显示出其中的奇数。用linq做。
这里呢,就先用fro循环和if条件写一下,其图与结果如下:

这个签于过于简单,也就不多说了。下面呢就是用linq做的,其图如下:

稍微注意一下的就是:要将整个linq表达式ToList()一下,也就是将之变成一个集合,for循环才好遍历之,另外就是既然是集合了就不在找length了,需要点出来的是Count.另外,linq是可以做到延迟加载的或者说是延迟显示的,也就是我linq表达式写完了,但它并没有真正的去执行,如上面的代码,而是在我将之ToList()之后,它才会去查的。这样可以减少查询的次数。
然后,也就是这些很浅的一些关于linq的知识了。今天就到这里了。
复习linq的更多相关文章
- C#复习笔记(4)--C#3:革新写代码的方式(查询表达式和LINQ to object(下))
查询表达式和LINQ to object(下) 接下来我们要研究的大部分都会涉及到透明标识符 let子句和透明标识符 let子句不过是引入了一个新的范围变量.他的值是基于其他范围变量的.let 标识符 ...
- C#基础:LINQ 查询函数整理
1.LINQ 函数 1.1.查询结果过滤 :where() Enumerable.Where() 是LINQ 中使用最多的函数,大多数都要针对集合对象进行过滤,因此Where()在LINQ 的操作 ...
- linq学习笔记
最近在学习linq的一些基础知识,看了c#高级编程及阅读了园子内部几篇优秀的博文,有所体会,感觉应该记录下来,作为以后复习使用.都是一些最基础的知识,大致分为三个部分:linq预备知识:linq查询: ...
- EF(Linq)框架使用过程中的小技巧汇总
这篇博客总结本人在实际项目中遇到的一些关于EF或者Linq的问题,作为以后复习的笔记或者供后来人参考(遇到问题便更新). 目录 技巧1: DbFunctions.TruncateTime()的使用 技 ...
- C#复习、面向对象阶段开始
C#复习:在控制台程序中使用结构体.集合,完成下列要求项目要求:一.连续输入5个学生的信息,每个学生都有以下4个内容:1.序号 - 根据输入的顺序自动生成,不需要手动填写,如输入第一个学生的序号是1, ...
- 转linq中的Single()、First()、Take(1) LINQ 标准的查询操作符 排序 orderby、thenby、Take
Single():操作一个集合,同时强要求只有一个对象匹配,并返回这一个. First():操作一个集合,可以有多个对象匹配,但是只返回第一个. Take(1):操作一个集合,可以有对个对象匹配,单只 ...
- Linq之Expression高级篇(常用表达式类型)
目录 写在前面 系列文章 变量表达式 常量表达式 条件表达式 赋值表达式 二元运算符表达式 一元运算符表达式 循环表达式 块表达式 总结 写在前面 首先回顾一下上篇文章的内容,上篇文章介绍了表达式树的 ...
- Linq之隐式类型、自动属性、初始化器、匿名类
目录 写在前面 系列文章 隐式类型 自动属性 初始化器 匿名类 总结 写在前面 上篇文章是本系列的小插曲,也是在项目中遇到,觉得有必要总结一下,就顺手写在了博客中,也希望能帮到一些朋友.本文将继续介绍 ...
- c#中的linq一
c#中的linq 测试数据: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
随机推荐
- HTML_创建易用的Web表单
首先创建一个表单域集合fieldset fieldset元素允许Web开发者将主题相关的表单组合在一起 <fieldset></fieldset> 要说明的是本例子中每个表单都 ...
- CSV文件导入到SQL Server表中
USE 数据库名BULK Insert dbo.表名From 'c:\CSV文件名.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\ ...
- Sql日期时间格式转换;取年 月 日,函数:DateName()、DATEPART()
一.sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007 ...
- 正确的安装和使用nvm
前言 目前主流的node版本管理工具有两种,nvm和n.两者差异挺大的,具体分析可以参考一下淘宝FED团队的一篇文章: 管理 node 版本,选择 nvm 还是 n? 总的来说,nvm有点类似于 Py ...
- Grunt 认识
基本工作流: JS合并.JS压缩.CSS压缩.CSS Sprite.图片优化.测试.静态资源缓存(版本更新)... 基于工作流产生的工具: JSHint(jshint.com).CSSLint(css ...
- 洛谷 P1195 口袋的天空
题目背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 题目描述 给你云朵的个数N,再给你M个关系,表示哪些云朵可以连在 ...
- MTD技术介绍
MTD(Memory Technology device)是用于访问memory设备(ROM.Flash)的Linux子系统,在Linux中引入这一层的主要目的是为了更加简单的添加新的Memory存储 ...
- EF6数据迁移
当Moldes发生改变时 会提示数据上下文的模型已在数据库创建后发生改变,则需要重建数据库并数据迁移 在NuGet程序包管理控制台输入enable-migrations启用数据迁移 之后会提示&quo ...
- Linux C 程序 线程(18)
线程控制 1.线程与进程的关系 线程:计算机中独立运行的最小单位. 在用户角度:多个线程是同时执行的. 操作系统角度:各个线程交替执行 以上只针对单核CPU的情况 在多核CPU主机上,多个线程可以同时 ...
- ORACLE 语句关联统计
很久不用SQL语句了,貌似入职新公司后,又回归到了三年前的SQL时代,一写一坨的SQL好吧,也当回归一下过去的知识. 下面是统计2月份某数据的计费统计 select t.telno as 主号,VID ...