LINQ之道
提到LINQ首先我们要了解什么是委托:委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。也就是说当你委托给一个人办一件事的时候,他就拥有这个能力去实现这件事,同样委托也是,简单的原理:就是把一个方法作为一个参数给另一个方法。
其次就是我们要了解什么是Lambda表达式,简单的讲一下Lambda的历史自从C#3.0开始,可以使用一种更为方便的语法把功能实现代码赋予委托:Lambda表达式:( 参数列表 )=> { 实现代码 }表达式 => (也可以读作 goes to)左列需要的参数,Lambda运算符的右边定义了赋予Lambda的实现代码
最后就是我们的LINQ提供了一个常规的途径,即给.Net Framework添加一些可以应用于所有信息源(all sources of information)的具有多种用途的语法查询特性,这是比向开发语言和运行时添加一些关系数据特性或者类似 XML特性更好的方式。这些语法特性就叫做Language Integrated Query (LINQ)或称之为语言集成查询。
Linq的语法:数据源是一个普通的字符串数组,LINQ查询的主要功能是从字符串数组中查询出,以“基础”结尾的字符串。从代码可以看出,整个操作分为3步:新建数据源、创建LINQ查询和执行查询。在创建查询时,可以看到一些与SQL查询语言类似的关键字,如from、select、where等。
“LINQ tO Objects”是指直接对任意集合使用LINQ查询。与传统的foreach循环相比,LINQ具有三大优势。
(1)更简洁,更易读,特别是在筛选条件比较复杂时。
(2)使用最少的代码编写强大的筛选、排序和分组的功能。
(3)无须修改或只需修改少量代码即可将其移植到其他类型的数据源。
“LINQ to Objects”是指直接对任意集合使用LINQ查询。与传统的foreach循环相比,LINQ具有三大优势:更简洁,更易读,特别是在筛选条件比较复杂时;使用最少的代码编写强大的筛选、排序和分组的功能;无需修改或只需修改少量代码即可将其移植到其他类型的数据源。所有的LINQ查询操作都由三个不同的操作组成:获取数据源;创建查询;执行查询,以上就是简单的叙述。
LINQ之道的更多相关文章
- Linq动态查询简易解决之道(原创)
因为项目需要使用Linq来查询数据,但是在多条件查询时,需要使用一大堆if(...!=string.empty)等判断条件感觉不是很优雅.网上搜索以下,大概找到了两种办法,一种是老外写的一个类,感觉用 ...
- 过16道练习学习Linq和Lambda(转)
1. 查询Student表中的所有记录的Sname.Ssex和Class列. select sname,ssex,class from studentLinq: from s in Students ...
- 通过16道练习学习Linq和Lambda
http://kb.cnblogs.com/page/73528/ 1. 查询Student表中的所有记录的Sname.Ssex和Class列. select sname,ssex,class fro ...
- LINQ to SQL使用教程
前些时间用LINQ to SQL做了一些项目,现在打算总结一下,帮助新手快速入门,并写一些别的教程没提到的东西. 一.LINQ to SQL和别的LINQ to XXX有什么关系?二.延迟执行(Def ...
- [转]用C#在windows上操控电脑自带蓝牙(入道指南)
本文转自:https://blog.csdn.net/YSSJZ960427031/article/details/50990372 前言如题,如果你也想用C#在windows上操控电脑自带蓝牙,但是 ...
- .Net进阶系列(4)-Lambda和linq入门(被替换)
一. Lambda和linq入门 lambda表达式又叫点标记,linq表达式又叫查询表达式,下面有三个简单的案例说明一下二者的基本用法,详细用法会在后续章节中更新. 二. 事例 1. 准备学生信息. ...
- 《软件测试自动化之道》读书笔记 之 基于反射的UI测试
<软件测试自动化之道>读书笔记 之 基于反射的UI测试 2014-09-24 测试自动化程序的任务待测程序测试程序 启动待测程序 设置窗体的属性 获取窗体的属性 设置控件的属性 ...
- (第一篇) 一步一步带你了解linq to Object
要想学好linq to object 我们必须要先学习lambda 表达式,学习lambda 表达式呢我们必须了解匿名函数和匿名类及扩展方法,学习匿名函数,我们必须学会委托,这是本文的宗旨.下面开始第 ...
- C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入
C# 嵌入dll 在很多时候我们在生成C#exe文件时,如果在工程里调用了dll文件时,那么如果不加以处理的话在生成的exe文件运行时需要连同这个dll一起转移,相比于一个单独干净的exe,这种形 ...
随机推荐
- openoffice转换pdf 异常问题查找处理 errorCode 525
could not save output document; OOo errorCode: 525 该问题是由于java程序和openoffice的启动所属用户不同导致.使用以下命令查看端口和进程 ...
- JDK10安装配置详解
JDK10安装配置详解 1. 下载jdk10 1.1 官网下载jdk7的软件包: 地址:http://www.oracle.com/technetwork/java/javase/dow ...
- Java中ArrayList学习笔记
1. 先看两段代码 这段代码在执行的时候会报 但是这样写就好着呢: 总结,研究报错的代码 ,在for循环的时候调用next()方法,next方法中调用了checkForComodification这个 ...
- 想在京津冀地区找个UI&UE的工作靠啥?看看这篇博客
文章目的 本篇文章针对京津冀计算机专业应届毕业生,求职UI相关行业,提供数据参考. 本篇文章试用对象 UI相关培训机构 计算机设计相关培训机构 高职专科类学院计算机相关专业 就业参考网站 智联招聘 拉 ...
- Java学习路线图分析
Java学习路线分析图 第一阶段 技术名称 技术内容 J2SE(java基础部分) java开发前奏 计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环境变量的设置, ...
- 使用Ninject的一般步骤
以下为DI控制反转个人理解烦请各位大牛指教~ 编写程序时我们应当遵循抵耦合高内聚的原则(各个功能模块互不依赖). 我们可以利用面向对象里面接口的特性来进行DI控制反转,让功能模块全部依赖接口,而不依赖 ...
- python3 Flask -day1
window 10 python 3 安装flask 首先打开cmd命令执行窗口切换到Python安装目录的Script,输入pip出现以下页面 这里我们使用virtualenv虚拟开发环境 为什么 ...
- JavaScript 新语法详解:Class 的私有属性与私有方法
译者按: 为什么偏要用 # 符号? 原文:JavaScript's new #private class fields 译者:Fundebug 本文采用意译,版权归原作者所有 proposal-cla ...
- Ntaub表单开发入门系列 (一)
此系列文章通过虚构场景介绍Ntaub表格开发流程.示例假设某公司人力部门要制定招聘计划,要求各部门按月提交招聘需求,招聘需求需经人力总监和公司总经理审批. 软件可以从http://www.ntaub. ...
- Android项目实战(五十四):zxing 生成二维码图片去除白色内边距的解决方案
目录:zxing->encoding->EncodingHandler类 中修改 createQRCode方法 private static final int BLACK = 0xff0 ...