- 浏览: 491368 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (329)
- [发布至博客园首页] (12)
- [随笔分类][01] .Net X (59)
- [随笔分类][20] Architecture (16)
- [随笔分类][21] Developer Logs (13)
- [网站分类]Windows 7 (1)
- [随笔分类][13] Oracle & .Net (7)
- [随笔分类][16] Love in China (14)
- [随笔分类][15] Development Tools (20)
- [随笔分类][18] Windows Phone (12)
- [随笔分类][12] Design & Pattern (17)
- [网站分类].NET新手区 (22)
- [网站分类]首页候选区 (2)
- [随笔分类][08] Windows (Server) (13)
- [随笔分类][02] CSLA.Net (3)
- [随笔分类][10] jQuery & javaScript (10)
- [随笔分类][11] SQL Server (4)
- [随笔分类][22] Enterprise Logs (3)
- [随笔分类][03] News (9)
- [随笔分类][19] Quality Assurance (2)
- [随笔分类][05] Silverlight (20)
- [随笔分类][14] Google Earth & .Net (6)
- [网站分类]非技术区 (9)
- [随笔分类][07] WWF (2)
- [随笔分类][04] SharePoint (1)
- [随笔分类][20] Analysis & Design (36)
- [随笔分类][06] WCF (5)
- [随笔分类][12] Architecture (1)
- [随笔分类][09] WPF (0)
- [随笔分类][17] VStudio & Expression (5)
最新评论
-
zhangyy130:
你好,我关于第二段的那个表视图、模型与图这三者的关系我没有看明 ...
UML模型的组成 -
guji528:
谢谢分享!
Enterprise Architect 基础应用 -
studentsky:
好文章,图文并茂!
WCF 第一个用 Visual Studio 2010 创建的WCF服务 -
chen975311486:
用哪个工具画的????
UML中对关系的描述 (二) -
frankies:
继续学习中。。
UML 交互概述图
LINQ 查询为最常用的操作符定义了一个声明语法。还有许多标准查询操作符
下面是 LINQ 定义的标准查询操作符。
下面开始学习这些查询
添加Using
using System.Linq; using System.Linq.Expressions;
过滤
使用 Where 子句,可以合并多个表达式。例如,找出赢得至少 15 场比赛的巴西和奥地利赛手。传送给
where 子句的表达式的结果类型应是 bool:
/// <summary> /// 过滤 /// </summary> private static void SimpleFiltering() { var racers = from r in Formula1.GetChampions() where r.Wins > 15 && (r.Country == "Brazil" || r.Country == "Austria") select r; foreach (var r in racers) { Console.WriteLine("{0:A}", r); } }
并不是所有的查询都可以用 LINQ 查询完成。也不是所有的扩展方法都映射到 LINQ 查询子句上。高级
查询需要使用扩展方法。为了更好地理解带扩展方法的复杂查询,最好看看简单的查询是如何映射的。使用扩
展方法 Where()和 Select(),会生成与前面 LINQ 查询一样的结果:
/// <summary> /// 过滤,带扩展方法的复杂查询 /// </summary> private static void SimpleFiltering() { //var racers = from r in Formula1.GetChampions() // where r.Wins > 15 && (r.Country == "Brazil" || r.Country == "Austria") // select r; var racers2 = Formula1.GetChampions(). Where(r => r.Wins > 15 && (r.Country == "Brazil" || r.Country == "Austria")). //先计算右侧括号里面的谓词结果,做参数再计算 Select(r => r); //谓词条件是r,也就是没有条件只传一个参数 foreach (var r in racers2) { Console.WriteLine("{0:A}", r); } }
用索引来过滤
不能使用 LINQ 查询的一个例子是 Where()方法的重载。在 Where()方法的重载中,可以传送第二个参数—个索引。
索引是过滤器返回的每个结果的计数器(这里用index1这个变量来存放)。可以在表达式中使用这个索引(之后可以使用这个变量)
,执行基于索引的计算。下面的代码由 Where()扩展方法调用,它使用索引返回姓氏以 A 开头、索引为偶数的赛手:
private static void SimpleFilteringWithIndex() { var racers = Formula1.GetChampions().Where((r, index1) => r.LastName.StartsWith("A") && index1 % 2 != 0); //index1 从0开始计数, 在重载的方法第二个参数为其赋值 foreach (var r in racers) { Console.WriteLine("{0:A}", r); } }
类型过滤
为了进行基于类型的过滤, 可以使用OfType()扩展方法。 这里数组数据包含string 和int对象。 使用OfType()
扩展方法,把 string 类传送给泛型参数,就从集合中返回字符串:
private static void TypeFiltering() { object[] data = { "one", 2, 3, "four", "five", 6 }; var query = data.OfType<string>(); foreach (var s in query) { Console.WriteLine(s); } }
模糊过滤
相当于SQL语句中的Like where r.Name.Contains(queryPara)
protected void btnSelect_Click(object sender, EventArgs e) { string queryPara = txtName.Text; List<MyData> query = cacheManager.GetData(KEYNAME) as List<MyData>; if (null == query) { //条件调用数据库 query = new List<MyData> { new MyData(){ Age=1, Color="New Yellow", Name="New China"}, new MyData{ Age=2,Color="New Black",Name="New USA"} }; Response.Write("读取数据库<br />"); //缓存 cacheManager.Add(KEYNAME, query); } else { List<MyData> filter = (from r in query where r.Name.Contains(queryPara) select r).ToList(); //如果这里从缓存中查出来的数据不为空但是却不正确(数量少,更新,添加) if (filter.Count == 0) { //如果结果等于空一定是查数据库 List<MyData> addQuery = new List<MyData> { new MyData(){ Age=1000, Color="New Green", Name=queryPara}, }; Response.Write("读取数据库<br />"); query.AddRange(addQuery); //缓存 cacheManager.Add(KEYNAME, query); query = addQuery; } else //筛选到结果则为结果 { query = filter; } } foreach (MyData q in query) { Response.Write(q.Name + "<br />"); } }
发表评论
-
LINQ to SQL语句之Insert/Update/Delete操作
2009-12-30 14:54 1104Insert/Update/Delete操作 插入(Ins ... -
RabbitMQ 安装配置和简单实例
2010-01-21 16:52 1819安装ErLang运行环境 配置运行环境变量 启动服务 ... -
MSMQ(Microsoft Message Queue,微软消息队列) Asp.Net 简单示例
2010-01-22 14:59 3251系统: Windows XP 1.安装MSMQ 控制面板—&g ... -
IromPython .Net 的简介和第一个例子
2010-01-23 18:53 1338.Net 4 都已经到来 ... -
Microsoft Asp.Net MVC 从入门到精通
2010-01-27 17:53 833ASP.NET MVC Framework是微软官方提供的MV ... -
C# Socket 同步通信与异步通信 示例
2010-01-30 17:50 4731同步 1.建立链接发送和获取信息 异步 1.服务器端建立一 ... -
解决 Visual Stuido 工具栏中的工具重置后,恢复回来。
2009-12-18 17:06 1239拿DevExpress 控件为例,如果重置工具栏后,以前的工具 ... -
LINQ to SQL 用O/R设计器手工建表对象
2009-10-11 22:04 1016除了自己建立定制对象外,还可以使用O/R设计器以可视化的方式创 ... -
LINQ to XML .Net 3.5 中的新XML对象
2009-10-15 14:11 884System.Xml.Linq 命名空间中,有一系列新的LIN ... -
LINQ to XML 用 LINQ 查询 XML
2009-10-15 15:57 667将一个已知的XML放到XDocument 对象当中使用LINQ ... -
LINQ to XML 操作XML文档
2009-10-15 17:18 972使用 XDocument 对象的 Element 方法,获取制 ... -
C# 编码规范
2009-10-15 19:20 720陈年的文档,不过很不错整理出来发到博客上,还有更多的朋友需要。 ... -
Visual Studio 项目模板、文件模板、代码段和环境设置
2009-10-15 19:31 934很久前使用过,那个时候还没有开始写博客,好久不用就都忘记了,这 ... -
ADO.NET Entity Framework 概述
2009-10-16 11:50 560ADO.NET Entity Framework 与 LINQ ... -
LinqPad 1.31 下载
2009-01-14 15:42 963LinqPad 1.31 也许你已经非常熟悉他了,为即将使用L ... -
jQuery 的第一个例子
2009-01-18 10:34 787通过这个例子可以对jQuery的使用有个基本的认识,jQ ... -
jQuery 选择器的使用
2009-01-18 10:39 830jQuery 能如此的流行,很重要的一点也许就是他有非常强大且 ... -
一次从GridView 获得多个指定行中多个指定控件的值
2009-01-20 07:33 865一次从GridView 获得多个指定行中多个指定控件的值,非常 ... -
jQuery 的Ajax应用(1)--学习篇,内附实例
2009-01-28 21:48 1322下面以前台jQuery,后天C# 的方式,演示了,如何通过 ... -
Enterprise Library 4.1 一步一步从入门到精通(未完成)
2009-02-05 23:04 884Enterprise Library 4.1 一步一步从入门到 ...
相关推荐
LINQ标准查询操作符LINQ标准查询操作符LINQ标准查询操作符LINQ标准查询操作符
LINQ标准查询操作符[收集].pdf
语言集成查询 (LINQ) ...除强类型化语法外,LINQ 查询还具有一个标准查询操作符库来增强其功能。这些标准查询操作符对序列进行运算并可执行各种运算,如确定序列中是否存在某个值以及对序列运行合计函数(如求和)。
LINQ标准查询操作符,对linq的扩展方法作了非常详细的描述,配合了,相当好懂的例子。非常不错,我已经看完了,5星推荐。
语言集成查询(LINQ)允许开发人员通过类型化语法使用Micrisoft.net Framework3.5代码编写类似SQL的查询.....(本资料使用LINQ来执行实际的查询和运算)
Linq 查询语法,作者收集的很详细并配有简单的实例。pdf格式
这是accessoft上,作者:煮江品茶 写的一个...摘 要:【VB.NET小品】LINQ标准操作符示例 正 文: LINQ是VS中的一个通用的数据查询技术,该技术简化了对SQL、XML等数据的查询。本示例介绍LINQ的标准查询符的使用方法。
本文介绍了LINQ标准查询操作符。没有这些操作符,LINQ就不会存在。本文为理解这些操作符的功能提供了很好的基础。了解它们将会很有帮助,因为LINQ的各种Provider都是基于这些操作符来完成各自丰富的功能。
LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable接口的源,并且它还允许适合于目标域或技术的第...
Linq操作符27个常用说明,对Linq to OBJECT进行了详细说明,包括Where,Select,SelectMany,Take,TakeWhile,Skip,SkipWhile,Concat,OrderBy,OrderByDescending,ThenBy等
2.5.2 更多使用LINQ标准查询操作符的例子 50 2.5.3 将扩展方法引入到实例程序中 51 2.5.4 注意事项 52 2.6 匿名类型 54 2.6.1 使用匿名类型组合数据 55 2.6.2 没有名字的类型也是类型 55 2.6.3 使用...
linq 简单查询示例,union,select,from,where,contact
第5章 LINQ到XML操作符 16 5.1 Ancestors和AncestorsAndSelf操作符 16 5.2 Attributes操作符 16 5.3 Nodes、DescendantNodes和DescendantNodesAndSelf操作符 16 5.4 Descendants、Elements和DescendantsAndSelf操作...
2.5.2 更多使用LINQ标准查询操作符的例子 50 2.5.3 将扩展方法引入到实例程序中 51 2.5.4 注意事项 52 2.6 匿名类型 54 2.6.1 使用匿名类型组合数据 55 2.6.2 没有名字的类型也是类型 55 2.6.3 使用...
linq简单查询,可实现分页,linq to sql
新技术讲座LINQ复杂查询 (学习资料带例子) LINQ复杂查询 Linq
LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable接口的源,并且它还允许适合于目标域或技术的第...
语言集成查询是一系列标准查询操作符的集合,这些操作符几乎对每一种数据源的导航、过滤和执行操作都提供了底层的基本查询架构。Linq 可查询的数据源包括XML(可使用LINQ to XML)、关系数据(使用LINQ to SQL)、...