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,这种形 ...
随机推荐
- netty基本用法
1.客户端 ①HelloClient.java public class HelloClient { public static String host = "127.0.0.1" ...
- 用Python学分析 - 散点图
# 运用散点图对数据分布得到直观的认识 import numpy as np import matplotlib.pyplot as plt # 设计 x, y 轴 n = 10000 x = np. ...
- DataFrameNaFunctions无fill方法
当我使用 spark2.1 ,为了填补 dataframe 里面的 null 值转换为 0 ,代码如下所示: dataframe.na.fill(0) 出现如下错误 Spark version 2.1 ...
- [区块链] 密码学——椭圆曲线密码算法(ECC)
今天在学椭圆曲线密码(Elliptic Curve Cryptography,ECC)算法,自己手里缺少介绍该算法的专业书籍,故在网上查了很多博文与书籍,但是大多数博客写的真的是...你懂的...真不 ...
- TensorFlow从1到2(三)数据预处理和卷积神经网络
数据集及预处理 从这个例子开始,相当比例的代码都来自于官方新版文档的示例.开始的几个还好,但随后的程序都将需要大量的算力支持.Google Colab是一个非常棒的云端实验室,提供含有TPU/GPU支 ...
- Python之父重回决策层,社区未来如何发展?
春节假期结束了,大家陆续地重回到原来的生活轨道上.假期是一个很好的休息与调节的机会,同时,春节还有辞旧迎新的本意,它是新的轮回的开端. 在 Python 社区里,刚发生了一件大事,同样有开启新纪元的意 ...
- 【.NETCore开源】开弓没有回头箭
2019.2.11 开工大吉!经过了半个月的休假,今天回归岗位重新拾起工作,却发现熟悉的代码生疏了.年前的计划回忆不起来了,俗称"节后综合症". 忆半月圈子 过年放假的前几天有多篇 ...
- 基于.NET的APP开发和Windows开发,异步回调差别
在Smobiler的开发中,控件或组件及客户端功能都是通过事件或委托来进行处理的. Smobiler是基于异步非阻塞的方式来运行的 下面我们分别对Windows的和Smobiler的MessageBo ...
- C#删除字符串最后一个字符
例:字符串 string str="2,3,5,7,9," 去掉最后一个逗号 ","; 常用的方法: 1.SubString()方法 str=str.SubSt ...
- css样式的继承性、层叠性 、优先级
一.css样式的继承性: 作用:给父元素设置一些属性,子元素也可以使用 应用场景: 一般用于设置网页上的一些共性信息,例如网页的文字颜色,字体,文字大小等内容.优化代码,降低工作量 注意点: 1.并不 ...