11、Linq的使用
一、种类
1.Linq to Objects,实现了IEnumerable<T>集合对象的集成查询
2.Linq to sql,针对关系数据库MSSQL的解释查询
3.Linq to Entities,通过实体数据模型,支持多个数据库的Linq
4.Linq to XML,针对XML文档的集成查询
二、λ表达式
1、形式
(1)一个参数+一条语句/c#表达式:参数 = > C# 表达式
(2)一个参数+一条或多条语句:参数 = > { 处理语句 }
(3)多个参数:(参数1,参数2,……参数n) => { 处理语句 }
(4)无参数:() = > { 处理语句 }
可以将表达式赋给委托对象:
delegate int myDelegate(int i );
myDelegate dobj = s => { return s * s; };
//或返回值就是表达式结果
myDelegate dobj1 = s => s * s;
具体使用参考:18、(番外)匿名方法+lambda表达式
2、查询语法:
1)在list集合中的使用:
如果是用匿名方法来查询某条信息:
List<string> names = new List<string>() { "李", "王" };
List<string> lnames = names.FindAll(delegate(string s) { return s[] == '李'; });//查询第一个字是李的集合
改为lambda表达式来查询,就可以省略return和委托字段:
List<string> lnames1 = names.FindAll(s => s[] == '李');
调用方法:集合.Where().Orderby.Select()……
a.where 只接受一个输入序列和一个谓词作为参数,返回一个结果续集
b.orderby(n=>n) 调用自身,orderby(n=>n.Length)调用长度……可以按长度或按字母顺序对数组进行排序
c.select 投影
3、查询表达式:以from开头,以select或group结束。
1)基本形式:
var 结果集= from 元素变量 in 数据源 select 元素或元素属性
2)有where子句的形式:
var 结果集= from 元素变量 in 数据源 where 布尔表达式 select 元素或元素属性
例:
var bi = from b in names where b.GetType() == typeof(string) select b;
3)into:在 select 或 group 子句后,用“into 变量名”开始新的查询(相当于把一个查询结果放入表里在对表进行操作)
let:直接引入一个新变量,在select 子句前 (let 变量名= ……)
三、Linq to Objects
1、投影输出多个标量元素
select new ProjectionItem{ Name = s.name,Age = s.age }
//表示投影s对象的两个字段,创建ProjectionItem的对象(可匿名),s.name和s.age为字段值,也可以自行拓展字符串
2、运算符等(略)
四、Linq to sql
1、需要先创建 DataContext 对象连接数据库:
var content = new DataContext(connection);
2、调用 GetTable 来获得查询对象
Table<Student> students = content.GetTable<students>();
3、执行查询(略)
4、用 content.SubmitChanges() 把修改保存到数据库中
11、Linq的使用的更多相关文章
- LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
在本系列中.主要介绍LINQ to SQL基础的东西,由于LINQ太强大了,它对我们寻常使用不同的数据源有着不同的内容,其包含对于SQL Server 数据库的LINQ to SQL:对于XML 文档 ...
- 新语法11. – LINQ
LINQ分组: IEnumerable<IGrouping< group dog by dog.Age; 遍历分组: foreach (IGrouping<int, Dog> ...
- LINQ系列目录
1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ ...
- Linq 学习笔记
简介: LINQ 提供一种统一的方式,让我们能在C#语言中直接查询和操作各种数据. LINQ是用来描述数据访问总体方式的术语.LINQ to Object是针对实现了IEnumerable< ...
- Linq to Sql : 三种事务处理方式
原文:Linq to Sql : 三种事务处理方式 Linq to SQL支持三种事务处理模型:显式本地事务.显式可分发事务.隐式事务.(from MSDN: 事务 (LINQ to SQL)).M ...
- 当你使用LINQ做底层时,最好设计一个工厂,不要把LINQ的动作暴露给业务层
1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: ...
- C#基础知识简单梳理
本文是转发博友的总结,方便自己以后随时温习: 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引用类型的数据存放在托管堆上面(它的引用地址却存放在堆栈上面)! 栈:它是一个内存数组, ...
- 转载文章----C#基础概念
转载地址:http://www.cnblogs.com/zhouzhou-aspnet/articles/2591596.html 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引 ...
- 用c#操作Mongodb(附demo)
因为需要,写了一个基于泛型的helper,这样要使用起来方便一点. 为了大家也不重复造轮子,所以发出来希望能帮到谁. 复杂的查询最好用linq,这也是mongodb官方建议的. mongodb的C#配 ...
- C#常用特性
1.服务器控件ID .NET服务器控件有三个ID,即:ID,ClientID和UniqueID ID为服务器控件的服务器标示,在服务器代码中通过ID来唯一区分服务器控件: ClientID是服务器控件 ...
随机推荐
- css学习归纳总结(二) 转
原文地址:css学习归纳总结(二) 标签与元素 <p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别.<p>.<div>等指的是HTM ...
- iOs基础篇(二十二)—— UIPickerView、UIDatePicker控件的使用
一.UIPickerView UIPickerView是一个选择器控件,可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活. 1.常用属性 (1)num ...
- CheckedListBoxControl 实现复选框的单选与多选功能
由于工作需要,需要实现复选框的单选与多选功能,找了好多资料都不是很全,经过两天苦苦的挖挖挖,终于完成啦O(∩_∩)O哈哈~ 用DEV控件中的CheckedListBoxControl控件,当然VS中的 ...
- php fastcgi_finish_request让你的程序由等待时间,瞬间完成,提高用户体验
当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法.按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行 ...
- 根据序列图像聚焦区域获取深度 Shape From Focus
最为超新新新新鸟...我也不知道第一篇文章应该写什么..所以,把自己最近正在研究的东西报一下吧, 研究的东西其实也不算深奥,就是对一个图像序列中的每张图像进行检测,发现每张图片的聚焦清晰区域,找到这个 ...
- python学习08——类
笨办法学python第42节,这节讲的是类,程序沿用上一节中一个游戏,不同的是这一节用了类的方法. 其中改动的代码主要如下 原来的最后几句用了这样的代码: ROOMS = { 'death':deat ...
- git检出与创建的过程
Command line instructions Git global setup git config --global user.name "bingo" git confi ...
- The connection to adb is down, and a severe error has occured.问题解决方法小结
遇到了几次这个问题:The connection to adb is down, and a severe error has occured. You must restart adb and Ec ...
- 算法导论----贪心算法,删除k个数,使剩下的数字最小
先贴问题: 1个n位正整数a,删去其中的k位,得到一个新的正整数b,设计一个贪心算法,对给定的a和k得到最小的b: 一.我的想法:先看例子:a=5476579228:去掉4位,则位数n=10,k=4, ...
- Disable testSuite and testCase on some environment
def testEnv = context.expand('${#Project#testEnv}') String[] testCases = ["CheckEARouting(ADS)A ...