走进Linq-Linq大观园

文章发布后大家有些人叫做,心里窃喜,不过压力也大增,我很想按照简洁 明快的文风写下去,不过讲技术的文章很难不落于沉闷,所以我努力了。(题外 话:这几天猛看幽默小说,想把文字写的幽默一点,开个玩笑,呵呵)

经 过几天的闭关编程大师又有了一些新的觉悟了,不管对DSL还是命令式编程和函 数式编程都有了新的理解。如是他又接着了漫长的云游。第一站当然就是那个曾 经让他结下心结的那个刚毕业的coder。

大师:“嘿,这几日可好 ,还在发牢骚么?”

Coder:“不了,正好你来了,让你看看 我的程序”,Coder将他的电脑屏幕转向大师,期盼的眼神表明他急切的期 望得到大师的夸奖。

如是大师看到了如下一些代码:

///    /// 一个通用的泛型委托,代表接受一个参数并有一个返回值的方法    ///    /// 输入参数类型    /// 返回值类型    /// 输入参数    /// 返回值    public delegate TOutput MyDelegate<TInput,TOutput>(TInput input);    ///    /// 这个类是包含有对IEnumerable接口的一系列扩展方法    /// 因为在.net里所有的集合类都实现了IEnumerable接口    /// 所以对该接口的扩展将扩散到所有集合    ///    public static class Extension    {        public static IEnumerable<TInput> Where<TInput>(this IEnumerable<TInput> self, MyDelegate<TInput, bool> filter)        {            foreach (TInput item in self)                if (filter(item))                    yield return item;        }        public static IEnumerable<TOutput> Select<TInput, TOutput>(this IEnumerable<TInput> self, MyDelegate<TInput, TOutput> selector)        {            foreach(TInput item in self)                yield return selector(item);        }       //下面有更多的SQL风格的移植}

下面是我做的个小测试 代码:

public class Program{        public static void Main()        {            IList books = new List {             new Book { Title = "Inside COM", ISBN = "123-456-789",Price=20 },             new Book { Title = "Inside C#", ISBN = "123-356-d89",Price=100 },             new Book { Title = "Linq", ISBN = "123-d56-d89", Price = 120 }            };            var result = books.Where(book => book.Title == "Linq").Select(book => new {                Key = book.Title,Value=book.Price            });        }}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索接口
, static
, item
, ienumerable
, title
public
大观园、南昆山温泉大观园、文化大观园、44555大观园心水论坛、刘姥姥进大观园,以便于您获取更多的相关知识。

时间: 2024-08-05 11:31:16

走进Linq-Linq大观园的相关文章

.Net开发必备十大工具详解之查询表达式(LINQ)

LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知.静态类型等强类型语言的好处.并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源. LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越.过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable<T>接口的源

Linq To Sql进阶系列(一)-从映射讲起

本系列,或多或少,直接或间接依赖入门系列知识.但,依然追求独立成章.因本文作者水平有限, 文中错误难免,敬请读者指出并谅解.本系列将会和入门并存. 案例 某君被邀为一超市设计数据库,用来存储数据.该君根据该超市中实际出现的对象,设计了 Customer, Employee,Order, Product等表,用来保存相应的客户,员工,订单,货品等.太好了,该 君很有oo的思想吗. 如果,你被要求用类及对象,来描述该关系型数据,你该如何做呢?在linq推出之前,ADO.NET被用 来做数据访问层.而

Linq入门——什么是linq &amp;amp; 扩展方法

 一,什么是Linq                      linq(language integrated Query):语言集成查询:      linq包含如下:                 对对象的查询,对数据库的查询,对XML的查询.       那么,没有linq前我们是怎样查询的?             先看一个例子:             现在我们要查询大于50的数,:          在没有linq之前,我们的代码时这样的:                   

asp.net使用LINQ to SQL连接数据库及SQL操作语句用法分析_实用技巧

本文实例讲述了asp.net使用LINQ to SQL连接数据库及SQL操作语句用法.分享给大家供大家参考,具体如下: LINQ简介 LINQ:语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据. LINQ是一门查询语言,和SQL一样,通过一些关键字的组合,实现最终的查询. LINQ的分类 LINQ to Object LINQ to XML LIN

System.Linq

System.Linq LINQ,语言级集成查询(Language INtegrated Query)          经过了最近 20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段.程序员现在都已经认同像 类(classes).对象(objects).方法(methods)这样的语言特性.考察现在和下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name "LINQ via C#" is copied from " CLR via C# ", one of my favorite books. Currently part 1 – 8 are finished, and the entire series should be 10 parts. The contents are: I

Swift使用LINQ操作数组/集合(附Swift的LINQ扩展、及替代方法)

一,什么是LINQ LINQ 是 Language Integrated Query(语言集成查询)的简称.它是微软在.NET 3.5中引入的重要功能.既然是微软推出的,那对应的编程言自然是c#和Visual Basic语言. 1,LINQ的作用 让我们可以使用相同API(类似SQL的语法来查询)操作不同的数据源.比如:SQL Server.Oracle.XML以及内存中的数据集合,当然开发人员也可以使用其提供的扩展框架添加更多的数据源. 2,LINQ的查询操作符 LINQ定义了大约40个查询操

觉得有必要来澄清几组重要概念

承蒙大家厚爱,不少朋友都会把遇到的问题向老赵进行讯问.不过在阅读很多朋友问题的过程中,以及平时和别人讨论中,亦或是园子里的文章中经常发现一些误用概念 的情况.如果在概念上没有形成共识,那么在工作和交流上就会造成许多问题.因此,虽然老赵已经在其他一些地方(例如WebCast或一些文章的评论)做过解释,但是现在 仍然觉得有必要特地来澄清一些概念,解释一下这些概念之间的区别和联系.希望在明确这些概念之后,大家能够把注意力集中在对于具体问题的分析解决上,而不要让沟 通成为瓶颈. 在这篇文章中,我希望澄清

throw的一些用法_实用技巧

无论是.net还是java,在开发程序时都难免会用到throw关键字,对于初学者一般会认为它与try...catch捆绑在一起,这当然是错误的,事实上,throw的一个最重要的作用就是: 让程序告诉用户一些事情,这些事情一般是开发人员之前定义好的,如对于一个输入文本框,你需要输入给定数字,但如果输入的不是给定的数据范围,则可以通过throw告诉用户! 让程序告诉开发人员一些事情,这些事情一般是底层开发人员之前定义好的,如果一些业务规范,如果开发人员输入的不合法,程序就会抛出一个异常,以告诉表层开

.NET程序员提高效率的70多个开发工具

工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为各ASP.NET 开发者介绍一些高效实用的工具,涉及SQL 管理,VS插件,内存管理,诊断工具等,涉及开发过程的各个环节,让开发效率翻倍. Visual Studio Visual Studio Productivity Power tool: VS 专业版的效率工具. Web Essentials: 提高开发效率,能够有效的帮助开发人员编写CSS, JavaScript, HTML 等代码. MSVSMON: 远程D