随笔分类 -  LINQ 学习路程

学无止境
摘要:1.多个select和where操作 2.Group by left outer join Sorting inner join 阅读全文
posted @ 2017-03-25 13:00 蓝平凡 阅读(426) 评论(0) 推荐(0)
摘要:上面的查询使用了多次的ToLower方法 下面的例子中使用let关键字重新引进一个变量,可以在查询中的任何地方使用,让代码可读性更高 into关键字,可以使你在一个select语句之后继续一个查询 上面的查询中,into关键字引进新的变量,所以从第一个变量s作用域出来,你可以用新的变量写出另一个查询 阅读全文
posted @ 2017-03-25 12:21 蓝平凡 阅读(569) 评论(0) 推荐(0)
摘要:延迟执行是指一个表达式的值延迟获取,知道它的值真正用到。 当你用foreach循环时,表达式才真正的执行。 延迟执行有个最重要的好处:它总是给你最新的数据 实现延迟运行 你可以使用yield关键字实现延迟加载 从上面输出的结果看出:当你用foreach循环遍历时,GetTeenAgerStudent 阅读全文
posted @ 2017-03-25 12:10 蓝平凡 阅读(378) 评论(0) 推荐(0)
摘要:表达式树就像是树形的数据结构,表达式树中的每一个节点都是表达式, 表达式树可以表示一个数学公式如:x<y。x、<、y都是一个表达式,并构成树形的数据结构 表达式树使lambda表达式的结构变得透明清楚, 编译器将上面的表达式翻译成下面的表达式树 你可以手动创建一个表达式树,如下 1.先创建参数节点 阅读全文
posted @ 2017-03-25 11:46 蓝平凡 阅读(1216) 评论(0) 推荐(0)
摘要:class Program { static void ReportTypeProperties<T>(T obj) { Console.WriteLine("Compile-time type: {0}", typeof(T).Name); Console.WriteLine("Actual ty 阅读全文
posted @ 2017-03-24 00:14 蓝平凡 阅读(259) 评论(0) 推荐(0)
摘要:SkipWhile 找到第一个与给定条件匹配的元素,然后跳过该元素获取剩余元素 从集合第一个元素判断,如果满足条件,则继续判断下一个元素,知道不满足条件后,跳过满足条件的元素返回剩下的序列 Take 阅读全文
posted @ 2017-03-24 00:04 蓝平凡 阅读(1209) 评论(0) 推荐(0)
摘要:Set OperatorsUsage Distinct 去掉集合的重复项 Except 返回两个集合的不同,第一个集合的元素不能出现在第二个集合中 Intersect 返回两个集合的交集,即元素同时出现在两个集合中 Union Returns unique elements from two seq 阅读全文
posted @ 2017-03-23 23:36 蓝平凡 阅读(1284) 评论(0) 推荐(0)
摘要:IList intList = new List>() { 10, 20, 30 }; var avg = intList.Average(); Console.WriteLine("Average: {0}", avg); IList studentList = new List>() { new Student() { StudentID = 1, Stud... 阅读全文
posted @ 2017-03-23 00:50 蓝平凡 阅读(598) 评论(0) 推荐(0)
摘要:聚合操作执行数学的运算,如平均数、合计、总数、最大值、最小值 Aggregate接受2个参数,一般第一个参数是称为累积数(默认情况下等于第一个值),而第二个代表了下一个值。第一次计算之后,计算的结果会替换掉第一个参数,继续参与下一次计算。 seed作为种子值进行累加 第三个参数对结果进行构造返回 阅读全文
posted @ 2017-03-23 00:35 蓝平凡 阅读(2015) 评论(0) 推荐(1)
摘要:Contains 上面的result将是false,即使“”Bill"在集合中,因为Contains仅仅比较对象的引用,而不是对象的值。所以要比较对象的值,需要实现IEqualityComparer接口 阅读全文
posted @ 2017-03-23 00:11 蓝平凡 阅读(402) 评论(0) 推荐(0)
摘要:select可以定义结果数据类型,可以返回用户自定义的类型或者匿名类型 方法查询 SelectMany 这里有7个老师,每个人有3个学生,总共21一个学生里 查询3个倒霉蛋没考及格 选出了门下有不及格学生的倒霉蛋老师+门生的分数 阅读全文
posted @ 2017-03-22 23:48 蓝平凡 阅读(18083) 评论(1) 推荐(3)
摘要:Join操作是将两个集合联合 Joining OperatorsUsage Join 将两个序列连接并返回结果集 GroupJoin 根据key将两个序列连接返回,像是SQL中的Left Join 根据key将两个序列连接返回,像是SQL中的Left Join Join操作两个集合,inner co 阅读全文
posted @ 2017-03-22 23:15 蓝平凡 阅读(1489) 评论(0) 推荐(0)
摘要:可以使用foreach遍历group,每个Group包含一个key和内部的集合 ToLookup和GroupBy一样,唯一不同的是GroupBy是延迟执行,而ToLookup是立即执行 注意:GroupBy和ToLookup返回一个集合(包含key,根据key分组的内部集合) 阅读全文
posted @ 2017-03-22 22:23 蓝平凡 阅读(2090) 评论(0) 推荐(2)
摘要:IList studentList = new List() { new Student() { StudentID = 1, StudentName = "John", Age = 18 } , new Student() { StudentID = 2, StudentName = "Steve", Age = 15 } , new Student() { Stu... 阅读全文
posted @ 2017-03-22 22:04 蓝平凡 阅读(672) 评论(0) 推荐(0)
摘要:OrderBy扩展方法有两个重载方法,第一个方法接受一个类型参数,你可以指定通过哪个字段进行排序 第二个方法接受一个实现IComparer的类型,用户可以自定义排序 OrderByDescending 多个排序 可以使用多个字段以逗号隔开进行排序,集合首先以第一个字段进行排序,如果第一个字段有相同的 阅读全文
posted @ 2017-03-22 21:43 蓝平凡 阅读(14284) 评论(0) 推荐(0)
摘要:OfType操作根据集合中的元素是否是给定的类型进行筛选 阅读全文
posted @ 2017-03-22 21:20 蓝平凡 阅读(583) 评论(0) 推荐(0)
摘要:1.where 方式2 方式3 where的第二个扩展方法包含集合的index索引 多个where从句 需要记住的几点: 1.Where根据特定条件来筛选集合元素 2.where扩展方法有2个重载,使用第二个重载方法可以知道当前元素在集合中的索引位置 3.方法语法需要整个lambda表达式,而查询语 阅读全文
posted @ 2017-03-22 21:13 蓝平凡 阅读(2905) 评论(0) 推荐(0)
摘要:1.查询语法 Query Syntax: 查询语法以From开头,后面紧跟着Range veriable变量,From从句像这样的结构"From rangeVariableName in IEnumerablecollection",意思是从集合的每个对象中获取,它有点像foreach循环, for 阅读全文
posted @ 2017-03-22 20:53 蓝平凡 阅读(1155) 评论(0) 推荐(0)
摘要:Enumerable: Queryable: 阅读全文
posted @ 2017-03-22 20:09 蓝平凡 阅读(413) 评论(0) 推荐(0)