摘要: 导航简介扩展方法--投影类扩展方法--聚合计算类扩展方法--判断类扩展方法--转换类扩展方法--连接类扩展方法--排序类扩展方法--筛选类扩展方法--分组类简介 在LINQ中,不是每一次使用LINQ都要进行一步一步写查询来操作的,完全可以通过.NET自带的方法来简单写LINQ查询语句,这些方法都有一些共同性,其类型实现了IEnumerable接口或IQueryable接口。此外,许多标准查询运算符方法运行所针对的类型不是基于IEnumerable或IQueryable的类型。Enumerable类型定义两个此类方法,这些方法都在类型为IEnumerable的对象上运行。利用这些方法(Cast. 阅读全文
posted @ 2014-01-15 17:39 Kitten Zhang 阅读(2301) 评论(0) 推荐(0) 编辑
摘要: 导航什么是LINQ基本LINQ查询操作Lambda 表达式LINQ 中的查询语法和方法语法什么是LINQ 语言集成查询 (LINQ)用于 .NET Framework 集合、SQL Server 数据库、ADO.NET 数据集和 XML 文档的查询,提供简洁、方便的查询操作。在 LINQ 查询中,始终会用到对象。可以使用相同的基本编码模式来查询和转换 XML 文档、SQL 数据库、ADO.NET 数据集、.NET 集合中的数据以及对其有 LINQ 提供程序可用的任何其他格式的数据。 LINQ需要IEnumerable或IEnumerable。支持IEnumerable或派生接口 (如泛型I.. 阅读全文
posted @ 2014-01-10 11:34 Kitten Zhang 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 算法——算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。如果说数据结构只是一些数据的组合,没有什么实际意义,那么算法就是这些数据的灵魂。一、算法的特性 算法具有输入、输出、有穷性、确定性和可行性五个特征。 (1)输入输出——算法具有零个或者多个输入,至少有一个或者有多个输出。 (2)有穷性——指算法在执行有限的步骤后,自动结束而不会出现无限循环,并且每一个步骤在可接受的额时间内完成。还指算法在人们可以接受的时间范围内有穷 在数学逻辑上有穷是无效的,因为不符合现实。 (3)确定性——算法的每一个步骤都具有确定的含... 阅读全文
posted @ 2013-06-04 23:03 Kitten Zhang 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 本文介绍一些数据集结构的概念,相对比较无聊,但是作为基础,还是很重要的。一、基本概念和术语 1.数据——是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 数据也就是符号,这些符号必须具备两个前提才能叫做数据: (1)可以输入到计算机中。 (2)能被计算机程序处理。 2.数据元素——是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也成为记录。 比如在畜类中,牛、马、猪、羊等是畜类中的数据元素。 3.数据项——是数据不可分割的最小单位,一个数据元素可以由若干个数据项组成。 比如人这样的数据元素,可以有眼、耳... 阅读全文
posted @ 2013-06-03 21:22 Kitten Zhang 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 状态模式——当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式在我看来是我学习到目前设计模式之中最有意思的一个设计模式了,它给我的感觉就是绝对的高内聚,在表面层进行调用的时候,完全不知道它是怎么改变了状态的,我们只是给一个属性赋了值而已,然后调用了同样的方法,它的状态就完全变了。 一般的开发中,要根据一个状态去动态的输出,是需要很多的if-else的判断的,每增加一个状态,我们就需要在这个判断的类中进行修改,这样完全违背了单一责任原则和开发封闭原则。有了状态模式,我们可以很好的对代码进行分离,使每个状态都有自己的特点。 状态模式最重要的一个类是一个叫S... 阅读全文
posted @ 2013-05-30 23:06 Kitten Zhang 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 单例模式——保证一个类仅有一个实例,并提供一个访问它的全局访问点 单例模式是为了解决全局只允许存在一个实例,防止出现多个实例扰乱程序的正常的运行,单例模式不是一个时刻都需要运用的模式,是情非得已下才使用的 它在多线程的条件下使用时必须要加锁才行,这样就造成了两种实现方式,分为“饿汉式”和“懒汉式”。 “饿汉式”单例的实现,饿汉式的实现方式在于静态初始化时就自己实例化了自己,不需要外部进行初始化,提前占用资源。、1.创建一个单例类,定义为sealed不可继承,并且在初始化的时候就自己创建了一个实例,外部调用时将这个实例返回回去。 1 /// <summary> 2 /// 定义这个类 阅读全文
posted @ 2013-05-29 23:16 Kitten Zhang 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂模式——提供一个创建一系列相关或依赖对象的接口,而无需指定它们的具体的类。 抽象工厂模式可以算设计模式中一个明星模式了,它完全实现了低耦合,配合反射一起应用的话,完全实现实现类之间无任何耦合,它可以改变一个应用的具体工厂,这非常容易实现,它只需要改变具体工厂即可使用不同的产品配置 同时,他让具体的创建实例过程与客户端分离,客户端是通过它们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离,不会出现在客户端中。1.User类,实体类,定义了姓名和ID两个属性 1 /// <summary> 2 /// 用户表 3 /// </summary> 4 publi 阅读全文
posted @ 2013-05-29 22:30 Kitten Zhang 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 观察者模式——定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生改变时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式正如以上定义所说的,为了解决一个对象的状态改变,同时去改变另外几个对象的状态的一个设计模式。当然,那些观察者必须保持一致。1.Subject类,抽象通知者类,定义并且实现了增加观察者,移除观察者,和通知观察者的方法。 1 /// <summary> 2 /// 抽象通知者 3 /// </summary> 4 public abstract class Subject 5 { 6 //定义一个观察者对象 阅读全文
posted @ 2013-05-26 22:02 Kitten Zhang 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 建造者模式——将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式同样是为了解决对象创建的低耦合而设计的模式,不过它有一些不同,那就是在于创建一系列对象时有序的,不可缺少的。如果用了建造者模式,那么用户只需指定需要建造的类型就可以得到它们,而建造的过程和细节就不需要知道了。 怎样运用建造者模式,有以下几个步骤:1.Product类,既然是建造,那么必须有产品吧,这里定义了一个产品类,它有多个部件。 1 /// <summary> 2 /// 产品类 3 /// </summary> 4 public class Product 5 { 阅读全文
posted @ 2013-05-26 17:46 Kitten Zhang 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 外观模式——为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式是指当有很多的类,它们实现不同的功能,可能出现很多种的组合功能,需要在客户端不停的去实现,造成了客户端责任不单一,代码过多、重复、易变等问题,外观模式可以解决这一问题。1.SubSystem类,子系统,包含了很多的功能实现,要实现这些功能需要在客户端创建这些组合 1 /// <summary> 2 /// 子系统1 3 /// </summary> 4 public class SubSystemOne 5 { 6 public void Meth 阅读全文
posted @ 2013-05-26 16:24 Kitten Zhang 阅读(156) 评论(0) 推荐(0) 编辑