2012年1月10日
摘要: 今天是LINQ学习笔记中的最后一篇文章了,这一篇要介绍的内容是LINQ to XML技术,同时这也是一项比较实用的LINQ查询就用,下面就来详细介绍它。在介绍LINQ to XML之前,我们先来回顾一下传统的XML文件处理的方式,即两个基于流的类和XmlDocument类,学习完这些后我们再来真正地学习LINQ to XML的XDocument类。一、基于流的XML处理 读写XML文件最常用的方法是使用两个基于流的类:XmlTextWriter和XmlTextReader。它们适合处理数据量小的XML文件,这是需要注意的。 1,写XML文件---XmlTextWriter类 代码如下... 阅读全文
posted @ 2012-01-10 20:34 永远的麦子 阅读(2472) 评论(0) 推荐(3) 编辑
  2012年1月3日
摘要: 这一篇要总结的属于LINQ中非常重要的部分即LINQ to Entities,它可以实现不需要编写任何数据访问代码就可以查询数据库的一种技术。使用LINQ to Entities非常地简单,大部分都是一些可视化地操作,下面是其详细步骤:第一步:创建数据模型:1,在"App_Code"上右击选择增加项目,在打开的新窗口中选择"ADO.NET Entity Data Model",输入名字后点击"Add"按钮。如下图所示:2,接下来有两个选项,我们选择Generate from database即从现有的数据库产生,如下图:3,接下来是选 阅读全文
posted @ 2012-01-03 17:18 永远的麦子 阅读(1146) 评论(0) 推荐(0) 编辑
摘要: 从这一篇开始要总结的是LINQ在实际中的应用,首先要总结的是LINQ to Objects,也就是LINQ与程序对象的配合使用。其中程序对象集合最典型就是与数组的配合使用,如下示例: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 int[] numbers = { 2, 12, 5, 15 };//数据源 6 7 IEnumerable<int> lowNums = from n in numbers //定义并存储查询。 8 ... 阅读全文
posted @ 2012-01-03 15:56 永远的麦子 阅读(873) 评论(1) 推荐(0) 编辑
摘要: 接着上午的总讲,下午要总结的是标准查询运算符(下)的内容。主要的内容是委托作为标准查询运算符的参数的相关知识。首先我们要知道把泛型委托作为参数的作用是什么?泛型委托用于给运算符提供用户自定义的代码。LINQ预定义的委托类型:LINQ定义了一套5种泛型委托类型与标准查询运算符一起使用。它们就是Func委托。如下代码所示:public delegate TR Func<TR>();//第1种,没有参数。public delegate TR Func<T1, TR>(T1 a1);//第2种,接受一个参数,其中TR代表返回值。public delegate TR`Func&l 阅读全文
posted @ 2012-01-03 15:33 永远的麦子 阅读(910) 评论(0) 推荐(0) 编辑
摘要: 今天是元旦假期的第三天,明天就要开始上班了,所以想借今天的时间总结一下LINQ中标准查询运算符的知识,因为此部分内容比较多,所以我想用上,下两篇来介绍它,其中上篇要介绍的内容是标准查询运算符介绍,查询表达式和方法语法组合和标准查询运算符的签名。标准查询运算符介绍: 标准查询运算符由一系列叫做API的方法组成,它能让我们查询任何.NET数组或集合。1,有关标准查询运算符的重要特性: 1> 被查询的集合对象叫做序列,它必须实现IEnumerable<T>接口,其中T是类型。 2> 标准查询运算符使用方法语法。 3> 运算符一般返回两种结果,一种是IEnumerable 阅读全文
posted @ 2012-01-03 11:45 永远的麦子 阅读(1386) 评论(0) 推荐(0) 编辑
  2012年1月2日
摘要: 今天是2012年的第二天,今天要总结的内容是LINQ中查询变量和查询表达式的结构。查询变量:首先来看一段代码: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 int[] numbers = { 2,5,28,31,17,16,42}; 6 7 var numsQuery = from n in numbers //返回枚举数 8 where n < 20 9 ... 阅读全文
posted @ 2012-01-02 21:40 永远的麦子 阅读(1286) 评论(0) 推荐(0) 编辑
  2011年12月30日
摘要: 有两种形式的语法可供我们在写LINQ查询的时候使用,分别是查询语法和方法语法。1,查询语法和方法语法的介绍? 查询语法:是声明形式的,看上去和SQL语句很相似,查询语法使用查询表达式形式书写。 方法语法:是命令形式的,它使用的标准的方法调用。方法是一组叫做标准查询运算符的方法。 注:1> 在一个查询中可以使用两种方法的组合。 2> 查询表达式使用的查询语法会被C#编译器转换为方法调用的形式,这两种形式在运行时性能上没有任何区别。2,查询语法和方法语法在LINQ查询中的使用? 例如: 1 class Program 2 { 3 static void M... 阅读全文
posted @ 2011-12-30 21:53 永远的麦子 阅读(1655) 评论(0) 推荐(0) 编辑
摘要: 今天要总结的内容是C# 3.0的最新特性-扩展方法,它在LINQ查询中使用得也非常多,所以很有必要总结一下,以便于我们能更好地掌握LINQ。主要从以下几点来了解扩展方法。1,什么叫扩展方法? 故名思义,扩展方法就是在类本身所声明的方法之外增加方法。当调用的时候就像作为类的实例成员来调用一样,这就是扩展方法。2,为什么要声明扩展方法?扩展方法有什么作用? 在不修改类型定义的情况下,让该类型获得功能上的扩展。3,如何声明扩展方法? 例如: 1 class MyData 2 { 3 private double D1, D2, D3;//声明变量 4 5 ... 阅读全文
posted @ 2011-12-30 21:31 永远的麦子 阅读(1181) 评论(0) 推荐(0) 编辑
  2011年12月29日
摘要: lambda表达式在LINQ中使用非常多,所以要想学好LINQ,那么必须先了解什么是lambda表达式,以及它是如何使用的。首先们看一个lambda表达式在LINQ查询中的应用的例子,我想通过这个例子我们能够更快地理解lambda表达式。例如: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 int[] numbers = { 2,5,28,31,17,16,42}; //创建数据源。 6 7 var numsMethod = n... 阅读全文
posted @ 2011-12-29 21:31 永远的麦子 阅读(2152) 评论(0) 推荐(0) 编辑
摘要: 昨天晚上因为参加部门组织的篮球赛,所以原本计划更新的内容没有按时更新,那今天我会把昨天的内容也补上,今天要总结的内容是匿名类型。1,什么是匿名类型? 匿名类型,故名思义就是没有名字(表面看不到,类名由编译器自动产生)的类型。2,匿名类型的作用? 当需要定义类来封装一些相关数据,而不需要任何相关联的方法、事件,而且这个类不需要在项目中重用时,我们也可考虑使用匿名类型来简化我们的操作。3,匿名类型对象的创建形式和示例? 创建形式: new {FieldProp=InitExpr,FieldProp=InitExpr,...} 示例: 如下代码给出了一个创建和使用匿名类型的实例,它创... 阅读全文
posted @ 2011-12-29 20:49 永远的麦子 阅读(1963) 评论(0) 推荐(0) 编辑
  2011年12月27日
摘要: 因为工作调动的关系,已经很久没有上来写博客了,最近新的工作算是稳定了,所以又有时间来跟大家分享我最近的学习心得了,真的很开心,哈哈!今天主要跟大家分享一下LINQ的知识,希望大家能够支持。在学习LINQ之前,我们有必要知道LINQ到底是什么东东?学习它有什么用途,下面就来介绍一下什么是LINQ。1,什么是LINQ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性。 注:LINQ(发音为Link)2,关于LINQ的重要高级特性? 1> LINQ是.NET框架的.. 阅读全文
posted @ 2011-12-27 21:44 永远的麦子 阅读(7500) 评论(0) 推荐(1) 编辑
  2011年11月17日
摘要: 离职在家,没有什么事做,所以借这个机会总结一下关于异步编程的技术来跟各位园友分享。1,什么叫进程?什么叫线程? 进程:进程就是一组资源,它们构成了一个正在运行的程序。这些资源包括虚拟地址空间,文件句柄以及程序启动需要的其他东西的载体。当我们启动一个程序时,系统在内存中 就创建了一个新的进程(Process)。 线程:在进程中,系统创建了一个叫做线程(thread)的内核对象,线程体现了一个程序的真实执行情况。一旦程序准备完毕,系统在线程中开始执行Main方法的第一条语句。默 认情况下,一个进程只包含一个线程,它从程序开始执行一直到程序结束。2,什么叫异步编程(或称为多线程)? ... 阅读全文
posted @ 2011-11-17 16:01 永远的麦子 阅读(2913) 评论(12) 推荐(6) 编辑
  2011年11月13日
摘要: 本文主要介绍的是Oracle版本的区别,从Oracle数据库的相关产品,从Oracle2.0开始(没有1.0)到Oracle7.3.4皆只是比较简单的相关Oracle版本号,以Oracle8开头,就出现数据库产品特性标识符,如Oracle8i和9i。这个i是Internet的缩写,表示该产品全面支持Internet应用,简单一点说,就是融入了JAVA技术和对JAVA的支持.从Oracle10称为10g,这个g是Grid的缩写,表示支持"网格运算",简单一点说,就是更好地支持集群和多点应用,到目前为止,最新版的是Oracle11g,而Oracle还有一个产品,称为Oracle 阅读全文
posted @ 2011-11-13 10:25 永远的麦子 阅读(17130) 评论(0) 推荐(1) 编辑
  2011年11月12日
摘要: 1, 可枚举类型和枚举数? 可枚举类型:实现了GetEnumerator方法的类型,并且它返回用于项的枚举数。 枚举数:枚举数是可以依次返回集合中项的类对象。一般是可枚举类型对象调用GetEnumerator方法来获取枚举数对象。 下图解释了可枚举类型和枚举数之间的关系:2, foreach语句实现原理? foreach语句是被设计用来和可枚举类型一起使用。只要它的遍历对象是可枚举类型。 比如数组,它就会执行以下动作来实现遍历输出。 1> 通过调用GetEnumerator方法获取对象的枚举数。 2> 从枚举数中请求每一项并且把它作为迭代变量,代码可以读但不可以改。 例如://方法 阅读全文
posted @ 2011-11-12 23:08 永远的麦子 阅读(1299) 评论(0) 推荐(0) 编辑
摘要: 1, 什么是泛型? 在理解泛型的定义之前,我们要明白非泛型的概念,非泛型就是大部分情况下是声明一个类,然后封装需要的行为,最后创建这些类的实例。 泛型是一种更准确地使用有一种以上的类型的代码的方式。泛型允许我们声明类型参数化的代码,我们可以用不同的类型进行实例化。总结为一句话就是,泛型类型是类型的模板。 请仔细理解下面两张图,或许能更好地理解泛型的原理。2, 泛型类? 创建和使用常规的,非泛型的类的过程有两个步骤:声明类和创建类的实例。 泛型的类不是实际的类,而是类的模板,所以我们必须先从它们构建实际的类类型, 然后个构建后的类类型的实例。 下图演示了泛型类的创建过程: 3, 声明泛型类? . 阅读全文
posted @ 2011-11-12 23:03 永远的麦子 阅读(4186) 评论(0) 推荐(2) 编辑