Linq的使用场景简介和认识
一:C#的一个分支Linq
二:学Linq需要有一些基础知识
1. var 隐式类型
2. 匿名类型/匿名方法
3. 自动属性
4. 委托/泛型的委托
5. lambda
6. 扩展方法
7. 对象初始化器 (匿名对象)
8. IEnumerable/yield/GetEnumerator
三:linq的作用的是什么 【大一统】
什么叫大一统: 就比如 linq中包含了对象查询,数据查询,xml查询等, 都包含在一起。
1. linq 【对象查询,数据查询,xml查询, xxx】
2. linq 其实就是使用扩展方法的lambda表达式。
四:linq to object
1. 原来 VS 现在
《1》 定义一个类
《2》 初始化了一个List集合。
《3》 foreach循环遍历。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//找到str中包含“A”的字符串,然后已大写字符串和字符串长度的形式转存出来。
//{Word="AS",Length=2},{Word="SPA",Length=3}
//最原始的方式
var strs = new string[] { "is", "as", "spa" };
List<Word> words = new List<Word>();
foreach (var str in strs)
{
var upper = str.ToUpper();
if (upper.Contains("A"))
{
words.Add(new Word() { Str = upper, Length = upper.Length });
}
}
//现在的读取方式
var query = from str in strs
let upper = str.ToUpper() //定义临时变量
where upper.Contains("A")
select new { Str=upper, Length=upper.Length };
}
}
class Word
{
public string Str { get; set; }
public int Length { get; set; }
}
}
2. linq to sql/ ado.net entityframework
这两个都是用linq的方式读取/操作数据库。
原来: 我们是写sql代码的形式操作数据库。
表达式树,将lamada用树的形式存储起来,这样就方便将lambda表达式
解析成sql。
3. linq to dataset => datatable
原来:我们操作dataset/datatable 有foeach的形式。
现在:我们就可以用linq的方式了。
4. linq to xml
原来:用xmlwriter和xmlreader的形式来操作xml。
现在:我们用linq中的XDocument和XElement这样两种方式操作xml。
当然,大家一定要知道 linq to xml 其实是对xmlwriter的一种高层封装。
5. linq to xxx
这里的xxx需要自己去实现IQueryable接口。
Linq的使用场景简介和认识的更多相关文章
- 第15.47节、PyQt显示部件:QGraphicsView图形视图和QGraphicsScene图形场景简介及应用案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Graphics V ...
- Linqpad使用(调试Linq、结合linq调试业务场景、表格内编辑数据)
linqpad是一款linq语句调试工具,功能如下: 1.直接执行linq语句并查看生成的原生sql语句 2.可结合linq+C#代码进行业务场景调试 3.表格内直接新增.修改.删除数据 4.直接 ...
- 转载LINQ系列OrderBy(), ThenBy()简介
前言 前面两篇分别介绍了 Where() 与 Select() ,这篇则是要介绍 OrderBy() 与 ThenBy() ,这几个东西看起来最像 SQL 上会用到的语法,但切记一点,这边介绍的是 L ...
- 转 redis使用场景 简介
Redis实战(五) 聊聊Redis使用场景 发表于 2016-11-21 | 数据存储 | Redis 文章目录 1. 使用场景说明 1.1. 计数器 1.2. 排行榜 1.3. 用于存储时间戳 1 ...
- Linq To Excel使用简介二
目录: 1.常用方法介绍 2.查询符合条件的数据 3.手动添加映射 4.其他用法 1.常用方法介绍 里面有一些常见的方法,如下: Worksheet 获得工作表中的数据 Works ...
- 第四十章、PyQt显示部件:QGraphicsView图形视图和QGraphicsScene图形场景简介及应用案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Graphics V ...
- Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...
- NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例
一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.消息被发送到队列中,“消息队列”是在消息的传输过程中保存消息的容器 ...
- Redis作为消息队列服务场景应用案例
NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例 一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更 ...
随机推荐
- Django学习---ajax
Ajax 应用场景:我们在输入表单进行提交的时候往往会判断输入的数据形式是否正确,这个时候如果我们点击了提交就会刷新页面.如果我们不想要它刷新页面,让它“悄悄的提交数据”,这个时候我们就需要使用aja ...
- thinkphp5的程序部署到虚拟主机的配置
thinkphp5的程序部署到虚拟主机的配置 建议不要,因为这些目录文件会全部保留,那么没办法的时候咋整 1 htdocs 虚拟主机上的 把public/index.php修改 改动后的放到 ht ...
- exited with code 1
brcc32 command line for "Project1.vrc" c:\program files\embarcadero\rad studio\9.0\bin\c ...
- django网页的分页功能,大家如果有疑问请留言
url文件 from django.contrib import admin from django.conf.urls import url from app01 import views urlp ...
- WPF DataGrid 控件的运用
WPF DataGrid 控件的运用 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-23 参考: King Cobra 博客 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 11—Machine Learning System Design 机器学习系统设计
Lecture 11—Machine Learning System Design 11.1 垃圾邮件分类 本章中用一个实际例子: 垃圾邮件Spam的分类 来描述机器学习系统设计方法.首先来看两封邮件 ...
- ubuntu 安装 rtpengine
摘要 RtpEngine推荐使用Debian系统,可以看出Debian系统的安装是最简单的.我是基于ubuntu18.04安装的.需要注意的是如果你的Ubuntu系统版本太低,安装时会遇到各种的版本太 ...
- Python基础语法习题一
Part 1 习题 1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型 2.执行 Python 脚本的两种方式是什么 3.Pyhton 单行注释和多行注释分别用什么 ...
- cdh 安装步骤
http://www.cnblogs.com/jasondan/p/4011153.html 关于CDH和Cloudera Manager CDH (Cloudera's Distribution, ...
- js的事件冒泡和点击其他区域隐藏弹出层
一.前言 在编写页面的时候,我们经常使用到弹出层.对于弹出层,原本的意义就是增加与用户的交互,提升用户的好感度.如果弹出层都没有较好的体验,那何谈通过交互来提升好感... 首先提出几个弹出层的注意点: ...