C# LINQ (2)
Limiting Data —- Take() and Skip()
前面讲了 筛选
和 排序
,现在讲 选取
皇帝选妃,层层选拔,最后留几个,让他过目,他选一个或者几个作为妃子,大概是这么个意思Take(X)
是选取X个 Skip(Y)
是跳过前Y个
Select 选取子集
前面说的Where
OrderBy
结果都是和原类型一样,弱水三千取一瓢,而 Select
是取水里的 泡泡啊,小鱼啊,沙子啊,之类的,语法和前面说的一样
不是说有1000个人,我从里面挑10个,而是1000个人,我把所有人的衣服,或者帽子,或者鞋子,都收集在一起,组成一个新的集合,这在某些情况下是非常有用的。
当然我们也可以让选择的结果是个User class
集合,不仅仅只是名字,注意下面怎么写的
简而言之,Select
可以让你取一些源数据的属性组成新的集合,使用场景还是很广的
GroupBy
分类,分类后有个Key
属性,是刚开始分类时候的依据,也是分类后的类标识
这个Key我们可以自定义,就是在 Lambda
表达式那儿改,比如按照名字的前两个字母的不同来分类 users.GroupBy(user => user.Name.Substring(0, 2))
或者按照某个method
的结果 来定义
或者”打出一套组合拳” — 组合Key