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