一: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循环遍历。

  1. namespace ConsoleApplication1
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. //找到str中包含“A”的字符串,然后已大写字符串和字符串长度的形式转存出来。
  8. //{Word="AS",Length=2},{Word="SPA",Length=3}
  9. //最原始的方式
  10. var strs = new string[] { "is", "as", "spa" };
  11. List<Word> words = new List<Word>();
  12. foreach (var str in strs)
  13. {
  14. var upper = str.ToUpper();
  15. if (upper.Contains("A"))
  16. {
  17. words.Add(new Word() { Str = upper, Length = upper.Length });
  18. }
  19. }
  20. //现在的读取方式
  21. var query = from str in strs
  22. let upper = str.ToUpper() //定义临时变量
  23. where upper.Contains("A")
  24. select new { Str=upper, Length=upper.Length };
  25. }
  26. }
  27. class Word
  28. {
  29. public string Str { get; set; }
  30. public int Length { get; set; }
  31. }
  32. }

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的使用场景简介和认识的更多相关文章

  1. 第15.47节、PyQt显示部件:QGraphicsView图形视图和QGraphicsScene图形场景简介及应用案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Graphics V ...

  2. Linqpad使用(调试Linq、结合linq调试业务场景、表格内编辑数据)

      linqpad是一款linq语句调试工具,功能如下: 1.直接执行linq语句并查看生成的原生sql语句 2.可结合linq+C#代码进行业务场景调试 3.表格内直接新增.修改.删除数据 4.直接 ...

  3. 转载LINQ系列OrderBy(), ThenBy()简介

    前言 前面两篇分别介绍了 Where() 与 Select() ,这篇则是要介绍 OrderBy() 与 ThenBy() ,这几个东西看起来最像 SQL 上会用到的语法,但切记一点,这边介绍的是 L ...

  4. 转 redis使用场景 简介

    Redis实战(五) 聊聊Redis使用场景 发表于 2016-11-21 | 数据存储 | Redis 文章目录 1. 使用场景说明 1.1. 计数器 1.2. 排行榜 1.3. 用于存储时间戳 1 ...

  5. Linq To Excel使用简介二

    目录: 1.常用方法介绍 2.查询符合条件的数据 3.手动添加映射 4.其他用法   1.常用方法介绍         里面有一些常见的方法,如下: Worksheet 获得工作表中的数据 Works ...

  6. 第四十章、PyQt显示部件:QGraphicsView图形视图和QGraphicsScene图形场景简介及应用案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Graphics V ...

  7. Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

    一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...

  8. NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例

    一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.消息被发送到队列中,“消息队列”是在消息的传输过程中保存消息的容器 ...

  9. Redis作为消息队列服务场景应用案例

    NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例   一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更 ...

随机推荐

  1. 十年Java架构师分享

    看到一篇十年java架构师分享需要掌握的技术点,有时间对照一下,好好学习一下. ------------------------------------------------------------ ...

  2. 第6章Zabbix分布式监控

    Zabbix是一个分布式的监控系统.分布式监控适合跨机房.跨地域的网络监控.从多个Proxy收集数据,而每个Proxy可以采集多个设备的数据,从而轻松地构建分布式监控系统. ZabbixProxy可以 ...

  3. 获取properties配置

    1.      使用@Value @Value("${swagger.enable}") 使用Spring的PropertyPlaceholderConfigurer关联 @Val ...

  4. Shiro session和Spring session一样吗?

    出自:https://yq.aliyun.com/articles/114167?t=t1 1. 疑问 我们在项目中使用了spring mvc作为MVC框架,shiro作为权限控制框架,在使用过程中慢 ...

  5. 发生在阿里云 SLB 4 层的一次故障记录

    阿里云 SLB 与 ECS 之间发生故事.环境如下: SLB api-node: 该 SLB 后端接着 10 台节点服务器 SLB sql-node: 该 SLB 后端接着 2 台节点服务器 问题描述 ...

  6. LeetCode之字符串处理题java

    344. Reverse String Write a function that takes a string as input and returns the string reversed. E ...

  7. 如何查看Mysql服务器上的版本

    select version(); 1,mysql 的守护进程是mysqld [root@localhost ~]# service mysqld start 启动 MySQL: [确定] 你可以看看 ...

  8. AssetBundle依赖

    [Managing asset dependencies] 一个Asset会依赖其它Asset.可以把一个Asset所依赖的Asset也打包进自己的AssetBundle.可是多个Asset可能依赖同 ...

  9. Uniform & Attribute & Varying

    [Uniform & Attribute & Varying] 顶点着色器的输入变量用关键字“attribute”来限定. 片段着色器的输入变量(它和顶点着色器的输出变量相对应)用关键 ...

  10. Crack IDEA

    使用破解补丁 Crack IDEA→在http://idea.lanyus.com/上可以找到最新的破解补丁,下载并放到软件的bin目录下 →更改bin目录下的两个文件:Idea.exe.vmopti ...