LinQ常用扩展方法

绝大多数扩展方法都是对于泛型IEnumerable接口的扩展

Where方法:筛选匿名方法

每一项数据都会经过predicate的测试,如果针对一个元素,predicate执行的返回值为ture,那么这个元素就会放到返回值中

where参数是一个lambda表达式格式的匿名方法,方法的参数e表示当前判断的元素对象。参数的名字不一定非要叫e,不过一般lambda表达式中的变量名长度都不长

Count方法:

获取数据条数

Any方法:

是否至少有一条数据

获取一条数据(是否带参数的两种写法):

Single:有且只有一条满足要求的数据;

SingleOrDefault:最多只有一条满足要求的数据;

First:至少有一条,返回第一条;

FirstOrDefault:返回第一条或默认值;

选择合适的方法,“防御性编程‘

排序:

Order()对数据正序排序;

OrderByDescending()倒序排序;

对于简单类型排序,也许不用lambda表达式

特殊案例:按照最后一个字符排序;用Guid或者随机数进行随机排序

多规则排序:

可以在OrderBy和OrderByDescending的后面继续写ThenBy和ThenByDescending

限制结果集,只取部分数据

skip(n)跳过n条数据,Take(n)获取n条数据

例:获取从第二条开始获取的三条数据

C#
var orderreditems = list.skip(2).Task(3)
聚合函数:

Max()、Min()、Average()、Sum()、Count()

LinQ中所有的扩展方法几乎都是针对IEnumerable接口的,而几乎所有能返回集合的都返回IEnumerable,所以是可以把几乎所有方法”链式调用”的

分组:

GroupBy()方法参数是分组条件表达式,返回值为IGrouping类型的泛型IEnumerable,也就是每一组以一个IGrouping对象的形式返回。

IGrouping是一个继承自IEnumerable的接口,IGrouping中Key属性表示这一组的分组数据的值。

投影:

把集合中的每一项转换为另外一种类型

C#
.Select(e=> new{ })
LinQ的其他补充:

多使用链式调用

LinQ查询(方法)语法:无lambda表达式

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部