LINQ 学习路程 -- 开篇】的更多相关文章

Enumerable: Queryable:…
延迟执行是指一个表达式的值延迟获取,知道它的值真正用到. 当你用foreach循环时,表达式才真正的执行. 延迟执行有个最重要的好处:它总是给你最新的数据 实现延迟运行 你可以使用yield关键字实现延迟加载 public static class EnumerableExtensionMethods { public static IEnumerable<Student> GetTeenAgerStudents(this IEnumerable<Student> source)…
表达式树就像是树形的数据结构,表达式树中的每一个节点都是表达式, 表达式树可以表示一个数学公式如:x<y.x.<.y都是一个表达式,并构成树形的数据结构 表达式树使lambda表达式的结构变得透明清楚, Expression<Func<Student, && s.age < ; 编译器将上面的表达式翻译成下面的表达式树 Expression.Lambda<Func<Student, bool>>( Expression.AndAlso(…
Sorting Operator Description OrderBy 通过给定的字段进行升序 降序 排序 OrderByDescending 通过给定字段进行降序排序,仅在方法查询中使用 ThenBy 第二级升序排序,仅在方法查询中使用 ThenByDescending 第二级降序排序,仅在方法查询中使用 Reverse 反转集合,仅在方法查询中使用 IList<Student> studentList = new List<Student>() { , StudentName…
1.where Filtering Operators Description Where Returns values from the collection based on a predicate function OfType Returns values from the collection based on a specified type. However, it will depend on their ability to cast to a specified type.…
1.查询语法 Query Syntax: from <range variable> in <IEnumerable<T> or IQueryable<T> Collection> <Standard Query Operators> <lambda expression> <select or groupBy operator> <result formation> // string collection…
Grouping Operators Description GroupBy GroupBy操作返回根据一些键值进行分组,每组代表IGrouping<TKey,TElement>对象 ToLookup ToLookup is the same as GroupBy; the only difference is the execution of GroupBy is deferred whereas ToLookup execution is immediate. IList<Stude…
IList<Student> studentList = new List<Student>() { , StudentName = , StandardID = } , , StudentName = , StandardID = } , , StudentName = , StandardID = } , , StudentName = , StandardID = } , , StudentName = } }; IList<Standard> standardL…
IList<Student> studentList = new List<Student>() { , StudentName = } , , StudentName = } , , StudentName = } , , StudentName = } , , StudentName = } }; var lowercaseStudentNames = from s in studentList where s.StudentName.ToLower().StartsWith(…
Method Description AsEnumerable Returns the input sequence as IEnumerable<t> AsQueryable Converts IEnumerable to IQueryable, to simulate a remote query provider Cast Coverts a non-generic collection to a generic collection (IEnumerable to IEnumerabl…
Method Description Skip 跳过序列中指定数量元素,然后返回剩余序列 SkipWhile 只要满足条件,就跳过序列中的元素,然后返回剩余函数 Take 从序列的开头返回指定数量的连续元素 TakeWhile 只要满足条件,就返回元素 IList<string> strList = new List<string>(){ "One", "Two", "Three", "Four", &…
Set Operators Usage Distinct 去掉集合的重复项 Except 返回两个集合的不同,第一个集合的元素不能出现在第二个集合中 Intersect 返回两个集合的交集,即元素同时出现在两个集合中 Union Returns unique elements from two sequences, which means unique elements that appear in either of the two sequences. IList<string> strL…
Element Operators (Methods) Description ElementAt 返回指定索引的元素,如果索引超过集合长度,则抛出异常 ElementAtOrDefault 返回指定索引的元素,如果索引超过集合长度,则返回元素的默认值,不抛出异常 First 返回集合的第一个元素,可以根据指定条件返回 FirstOrDefault 返回集合的第一个元素,可以根据指定条件返回,如果集合不存在元素,则返回元素的默认值 Last 返回集合中的最后一个元素,可以根据条件返回 LastO…
IList<, , }; var avg = intList.Average(); Console.WriteLine("Average: {0}", avg); IList<Student> studentList = new List<Student>>() { , StudentName = } , , StudentName = } , , StudentName = } , , StudentName = } , , StudentName…
聚合操作执行数学的运算,如平均数.合计.总数.最大值.最小值 Method Description Aggregate 在集合上执行自定义聚集操作 Average 求平均数 Count 求集合的总数 LongCount 求集合的总数 Max 最大值 Min 最小值 Sum 总数 public static TSource Aggregate<TSource>(this IEnumerable<TSource> source, Func<TSource, TSource, TS…
Operator Description All 判断所有的元素是否满足条件 Any 判断存在一个元素满足条件 Contain 判断是否包含元素 IList<Student> studentList = new List<Student>() { , StudentName = } , , StudentName = } , , StudentName = } , , StudentName = } , , StudentName = } }; // checks whether…
IList<Student> studentList = new List<Student>() { , StudentName = "John" }, , StudentName = "Moin" }, , StudentName = "Bill" }, , StudentName = "Ram" }, , StudentName = "Ron" } }; var selectRe…
Join操作是将两个集合联合 Joining Operators Usage Join 将两个序列连接并返回结果集 GroupJoin 根据key将两个序列连接返回,像是SQL中的Left Join Join操作两个集合,inner collection 和 outer collection 它返回一个集合(包含两个集合根据特定条件结合的所有元素),和SQL中的inner join一样 public static IEnumerable<TResult> Join<TOuter, TIn…
IList<Student> studentList = new List<Student>() { , StudentName = } , , StudentName = } , , StudentName = } , , StudentName = } , , StudentName = }, , StudentName = } }; var thenByResult = studentList.OrderBy(s => s.StudentName).ThenBy(s =…
OfType操作根据集合中的元素是否是给定的类型进行筛选 IList mixedList = new ArrayList(); mixedList.Add(); mixedList.Add("One"); mixedList.Add("Two"); mixedList.Add(); mixedList.Add(, StudentName = "Bill" }); var stringResult = from s in mixedList.OfT…
目录 [翻译svg教程]svg学习系列 开篇 [翻译svg教程 ]svg 的坐标系统 [翻译svg教程]svg 中的g元素 [翻译svg教程]svg中矩形元素 rect [翻译svg教程]svg中的circle元素 [svg翻译教程]椭圆(ellipse元素)和线(line元素) [svg 翻译教程]Polyline(折线)polygon(多边形) [翻译svg教程]Path元素 svg中最神奇的元素! 网上svg的资料太少 买个书也买不到 碰巧遇到一个外国友人的svg学习些列,翻译下 http…
学习路程: 1.HTML和CSS基础 2.JavaScript语言 3.jQuery 4.综合网站实践 5.优化及调试…
好东西.转载一个.以备学习 Linq学习工具:     http://www.linqpad.net/ Lamada表达式: Func<int, int, int> IntPow = (x, y) => { int r = x; ; i < y; i++) r *= x; return r; }; Console.WriteLine(IntPow(, ));    备注:匿名函数—>委托—>Lamada表达式(由来)…
最全的linq学习文章: http://www.cnblogs.com/heyuquan/p/Linq-to-Objects.html…
原文地址:[Head-First设计模式]C#版-学习笔记-开篇及文章目录 最近一年断断续续的在看技术书,但是回想看的内容,就忘了书上讲的是什么东西了,为了记住那些看过的东西,最好的办法就是敲代码验证,然后将书上的内容和自己的总结一起分享出来,这样看书的效果就会有大大提升. 最近在看一本讲JAVA设计模式的书,本人是C#开发,并想将书上的内容转换成C#的,然后写到博客上,以后查阅也方便,大家也可以参考参考. 本篇是开篇,也是文章目录. 01.策略模式-上篇 02.单件模式 03.命令模式 参考文…
写在前面 最近在看Linq,在博客园看到这篇文章,写的通俗易懂,转来和大家一起做个分享.原文地址http://www.cnblogs.com/goscan/archive/2011/05/05/Linq_study_log.html 什么是Linq LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知.静态类型等强类型语言的好处.并且它同时还使得查…
写在前面 其实在09年就已经学习过Linq了,并被她那优美的语法所吸引,只是现在所在的公司还在使用VS2005在.Net2.0的框架下面的开发,所以Linq也很久没有用过了,最近看部门的同事对这个有些兴趣,所以打算整理点东西出来跟大家一起做个分享. 什么是Linq LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知.静态类型等强类型语言的好处.并…
LINQ to XML LINQ学习第一篇 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: public static void CreateDocument() { string path = @"d:\website"; XDocument xdoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), new…
这篇内容继续接着昨天的Lambda表达式的源码继续下去.昨天讲了Lambda表达式,此篇讲扩展方法,这两点都是Linq带来的新特性.    一.扩展方法介绍   废话不多说,先上源码截图: 上图中GetMemoryCount就是一个扩展方法,从上图的标注可以得出以下几点信息: 1.扩展方法需要加this关键词 2.扩展方法和被包含的类必须是静态的 3.被包含的类不能是泛型类 深入总结: 1.扩展方法可以接收任意多个参数,不过第一个参数必须用this修饰. 2.扩展方法的基础是对象, 比如这个对象…
此篇博文承接上一篇博文: LINQ学习系列-----2.2 迭代器 一.第一次执行                      废话不多说,上源码: 执行结果下图: 为什么会这样?其实原因很简单 from n in intArray select Square(n) 可以翻译为:Enumerable.Select<int,double>(intArray,n=>Square(n)); 看过上一篇文章的基本信息知道一些了,Enumerable.Select就是个迭代器,这也是延迟查询的奥秘.…