一.问题起源 LINQ to object在设计时,是配合IEnumerable<T>接口的泛型集合类型使用的,例如字典.数组.List<T>等,但是对于继承了IEnumerable的非泛型集合如何处理,例如ArrayList. 二.解决办法 上源码: ArrayList mArrayList = ","1dsadsad","12w1212","1212e12esadq" }; var query = from…
一.查询非泛型集合 1.问题起源 LINQ to object在设计时,是配合IEnumerable<T>接口的泛型集合类型使用的,例如字典.数组.List<T>等,但是对于继承了IEnumerable的非泛型集合如何处理,例如ArrayList. 2.解决办法 上源码: ArrayList mArrayList = ","1dsadsad","12w1212","1212e12esadq" }; var que…
#region Linq to 集合查询非泛型集合要指定Student类型            //ArrayList list = new ArrayList();            //list.Add(new Student { Name = "Tom", Age = 17 });            //list.Add(new Student { Name = "Jerry", Age = 16 });            //list.Add(…
此篇博文承接上一篇博文: LINQ学习系列-----2.2 迭代器 一.第一次执行                      废话不多说,上源码: 执行结果下图: 为什么会这样?其实原因很简单 from n in intArray select Square(n) 可以翻译为:Enumerable.Select<int,double>(intArray,n=>Square(n)); 看过上一篇文章的基本信息知道一些了,Enumerable.Select就是个迭代器,这也是延迟查询的奥秘.…
我们都知道,Linq能查询泛型集合,确切的说是:LINQ能实现查询泛型对象或者实现了IEnumerable.但是,很遗憾的是诸如ArrayList这样的非泛型集合并没有实现IEnumerable.那咋办呢?总不能把这么绚丽的Linq技术对非泛型关上大门把!~其实,方法还是有的. 场景还原: 定义一个car的类: class Car { public int CurrentSpeed; public int MaxSpeed; public string PetName; } 对ArrayList…
这篇内容继续接着昨天的Lambda表达式的源码继续下去.昨天讲了Lambda表达式,此篇讲扩展方法,这两点都是Linq带来的新特性.    一.扩展方法介绍   废话不多说,先上源码截图: 上图中GetMemoryCount就是一个扩展方法,从上图的标注可以得出以下几点信息: 1.扩展方法需要加this关键词 2.扩展方法和被包含的类必须是静态的 3.被包含的类不能是泛型类 深入总结: 1.扩展方法可以接收任意多个参数,不过第一个参数必须用this修饰. 2.扩展方法的基础是对象, 比如这个对象…
C# 泛型集合之非泛型集合类与泛型集合类的对应: ArrayList对应List HashTable对应Dictionary Queue对应Queue Stack对应Stack SortedList对应SortedList 第一  : ArrayList(非泛型集合)  与List(泛型集合) ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能: 1.Array 的容量是固定的,而 ArrayList…
局部类型转换文件 局部类型转换文件的文件名应为 ActionName-conversion.properties,其中 ActionName 是需要替换为 Action 的类名称,后面的 conversion.properties 字符串则是固定部分,类型转换文件应该放在和Action类文件相同的位置. 为了指定非泛型集合元素的数据类型,需要指定二个部分:集合属性的名称.集合元素类型,在局部类型转换文件中指定如下key-value对即可: List 类型: Element_PropName=El…
非泛型集合的类和接口位于System.Collections命名空间 如:列表.队列.位数组.哈希表和字典的集合     ArrayList 动态数组 可被单独索引的对象的有序集合可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小允许在列表中进行动态内存分配.增加.搜索.排序   Capacity:获取或设置可以包含的元素个数Count:包含的元素个数Item:获取或设置置顶索引处的元素Add:末尾添加一个对象Clear:移除所有的元素Contains:判断元素是否在Arra…
建议20:使用泛型集合代替非泛型集合 在建议1中我们知道,如果要让代码高效运行,应该尽量避免装箱和拆箱,以及尽量减少转型.很遗憾,在微软提供给我们的第一代集合类型中没有做到这一点,下面我们看ArrayList这个类的使用情况: ArrayList al=new ArrayList(); al.Add(); al.Add(); al.Add("mike"); foreach (var item in al) { Console.WriteLine(item); } 上面这段代码充分演示了…
第一  : ArrayList(非泛型集合)  与List(泛型集合) ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array(数组.Array 类提供了各种用于数组的属性和方法.) 类中提供的一些功能: 1.Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的. 2.ArrayList 提供添加.插入或移除某一范围元素的方法.在 Array 中,您只能一次获取或设置一个元素的值. 3.使用 Sync…
1.首先:ArrayList:非泛型集合 List:泛型集合 集合跟数组比较我们更容易理解.数组:1,长度固定2,数据类型预先声明 集合:1,长度可变2,数据类型预先声明的为泛型集合,数据类型不限定为非泛型 ArrayList:1.类似于数组,称为数组列表:容量可以根据需要自动扩充,它的索引会根据程序的扩充而重新进行分配和调整,还提供一系列方法对其中的元素进行访问,添加和删除操作! 2.ArrayList的命名空间为Collections: 例如: //值传递的引用传递 Student stu…
目录 非阻塞并发队列ConcurrentLinkedQueue概述 结构组成 基本不变式 head的不变式与可变式 tail的不变式与可变式 offer操作 源码解析 图解offer操作 JDK1.6 hops设计意图 poll操作 源码解析 图解poll操作 总结 参考阅读 非阻塞并发队列ConcurrentLinkedQueue概述 我们之前花了很多时间了解学习BlockingQueue阻塞队列接口下的各种实现,也大概对阻塞队列的实现机制有了一定的了解:阻塞 + 队列嘛. 而且其中绝大部分是…
LINQ之路系列博客导航 http://www.cnblogs.com/lifepoem/archive/2011/12/16/2288017.html LINQ体验系列文章导航 http://www.cnblogs.com/lyj/archive/2008/03/25/1119671.html 最佳体验 http://blog.csdn.net/cheny_com/article/details/7038872…
ado.net EF是微软的一个ORM框架,使用过EF的同学都知道EF有一个延迟加载的技术. 如果你是一个老鸟,你可能了解一些,如果下面的学习过程中哪些方面讲解的不对,欢迎批评指教.如果一个菜鸟,那我们就一起开始今天的学习. 首先,提出以下几个问题. 何为延迟加载呢? 我们该如何使用呢? 我们为什么要使用延迟加载技术呢? 延迟加载技术有什么优.缺点呢? 好,带着上面的问题我们开始今天的学习. 1.何为延迟加载   EF的延迟加载,就是使用Lambda表达式或者Linq 从 EF实体对象中查询数据…
在学习本篇迭代器之前,强烈建议可以先学习一位具有工匠精神博主的文章,链接如下: 农码一生---先说IEnumerable,我们每天用的foreach你真的懂它吗? 本篇文章,是在该博主博文的基础上再次深入的研习. 建议:在学习迭代器之前,必须先学习IEnumerable.IEnumerator接口(可点击上链接,学习此接口) 一.什么是迭代器               教科书说法:                      说法一:迭代器不会一次性的返回整个集合中的所有值,而是每次只返回一个.…
Linq语句介绍 先上源码: 上述代码涵盖了Linq新特性: 代码解析: 针对本文中的几点特性,前面有文章进行阐述.…
 1.1  Lambda表达式介绍 下图就是一个典型的Lambda表达式. instance:输入参数 =>:Lambda操作符 instance.MemoryCount>=20*1024; :表达式语句块 Lambda操作符可以读作"goes to",操作符的左边用来输入参数,右边是表达式块或语句.  1.2  Lambda表达式实例 表达式1:有参数的隐式类型,表达式方法体 表达式2:有参数的隐式类型,语句方法体 表达式3:有参数的显式类型,表达式方法体 表达式4:有参…
) set @TableName = 'Agency' -- 表名 declare @querySql nvarchar(max) set @querySql = 'select ' ) declare My_Cursor cursor for(select name from syscolumns where id = (select max(id) from sysobjects where xtype = 'u' and name = '' + @TableName + '' ) ) op…
本篇内容接着上一篇继续讲述,本篇简单讲解匿名对象 一.匿名对象介绍              上代码: var result=new { ID=, Name="张三", Age= }; 若想输出这个新对象的Age属性的内容,可以让Console.WriteLine深入到该对象的下一层,Console.WriteLine(reuslt,1)即可 虽然匿名对象没有对象名,不过仍然是类型---编译器将自动为其生成名字.代码的result将指向上述自动创建的类型的一个实例.该类型有三个属性:I…
一.普通模式: #region 模式1 public Form1() { InitializeComponent(); GetProcessByJudge(); } public bool MemoryCountJudge(ProcessClass cl) { * ) { return true; } return false; } public void GetProcessByJudge() { Process[] processArray = Process.GetProcesses();…
先说一段废话吧,本打算每天把所学的知识总结为博客的,但是昨天为什么没有写呢?没有学习吗?No,那是为什么?贪玩,对,这位同学说对了,老实说昨天感觉身体不怎么舒服,大家都知道,这其实就是为自己懒找借口,好吧,废话先唠到这儿,下面进入正题. 先说说概念吧 在持久化类中,有时会使用到值类型的对象属性,所谓值类型的对象,是指它对应的类没有对象标识符属性,也就是我们在前面所说的OID,只能作为一个持久化类的属性使用.如果持久化类中一个值类型的集合,那么就需要一张额外的数据库表来保存这个值类型集合的数据,这…
照旧,先新建一个StudentMap.java实体类,将hobby属性使用map集合接口来存放: package com.joe.entity; import java.util.Map; public class StudentMap { private int id; private String name; private int age; private Map<String,String> hobby; /** * 无参构造函数 */ public StudentMap(){ } p…
度过短暂的周末,又到了周一,继续轻松而愉快的学习,紧承以前的学习,继续了解hibernate对集合的操作学习之旅! 在上一篇中,就已经提前说过,这一篇的内容以及下一篇的内容会有很多相似之处,这里就不再多言了.像往常一样,新建一个StudentCollection.java实体类: package com.joe.entity; import java.util.Collection; public class StudentCollection { private int id; private…
今天要写的内容其实不多,本打算将hibernate对集合的操作的内容直接归结为一篇的,但想一想,还是分开写的比较好,毕竟前面的已经发布出去来了,废话不多说,开始吧! 依旧新建一个StudentList.java实体类,其他的属性不变,只是将hobby属性由Set集合类型变为List集合类型,还是把代码贴出来吧,希望不要嫌烦 package com.joe.entity; import java.util.List; public class StudentList { private int i…
1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果.2.Select  操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中的元素类型相同,也可以不同.下面来看看Select方法的原型.3.SelectMany 操作符用于根据输入序列中的每一个元素,在输出序列中创建相应的零个或者多个元素,与Select操作符不同,Select操作符会根据输入序列中的每一个元素创建一个对应的输出序列元素,而SelectMany操作符可以创…
一遍学习基础,一遍练习打字,很多乐趣. 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; namespace dazilianxi { public class Category { public int Id { get;set;} public string Name { get; set; } } public c…
1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果.2.Select  操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中的元素类型相同,也可以不同.下面来看看Select方法的原型.3.SelectMany 操作符用于根据输入序列中的每一个元素,在输出序列中创建相应的零个或者多个元素,与Select操作符不同,Select操作符会根据输入序列中的每一个元素创建一个对应的输出序列元素,而SelectMany操作符可以创…
目录 LinkedList 源码学习 LinkedList继承体系 LinkedList核心源码 Deque相关操作 总结 LinkedList 源码学习 前文传送门:Java小白集合源码的学习系列:ArrayList 本篇为集合源码学习系列的LinkedList学习部分,如有叙述不当之处,还望评论区批评指正! LinkedList继承体系 LinkedList和ArrayList一样,都实现了List接口,都代表着列表结构,都有着类似的add,remove,clear等操作.与ArrayLis…
一.什么是泛型? 泛型是C#语言和公共语言运行库(CLR)中的一个新功能,它将类型参数的概念引入.NET Framework.类型参数使得设计某些类和方法成为可能,例如,通过使用泛型类型参数T,可以大大简化类型之间的强制转换或装箱操作的过程(下一篇将说明如何解决装箱.拆箱问题).说白了,泛型就是通过参数化类型来实现在同一份代码上操作多种数据类型,利用“参数化类型”将类型抽象化,从而实现灵活的复用. 使用泛型给代码带来的5点好处:1.可以做大限度的重用代码.保护类型的安全以及提高性能.  2.可以…