C# LINQ (2)

Limiting Data —- Take() and Skip()

前面讲了 筛选排序,现在讲 选取
皇帝选妃,层层选拔,最后留几个,让他过目,他选一个或者几个作为妃子,大概是这么个意思
Take(X) 是选取X个  Skip(Y) 是跳过前Y个
C# LINQ (2)


Select 选取子集

前面说的Where OrderBy 结果都是和原类型一样,弱水三千取一瓢,而 Select是取水里的 泡泡啊,小鱼啊,沙子啊,之类的,语法和前面说的一样
C# LINQ (2)
不是说有1000个人,我从里面挑10个,而是1000个人,我把所有人的衣服,或者帽子,或者鞋子,都收集在一起,组成一个新的集合,这在某些情况下是非常有用的。

当然我们也可以让选择的结果是个User class 集合,不仅仅只是名字,注意下面怎么写的
C# LINQ (2)

简而言之,Select可以让你取一些源数据的属性组成新的集合,使用场景还是很广的


GroupBy

分类,分类后有个Key属性,是刚开始分类时候的依据,也是分类后的类标识
C# LINQ (2)

这个Key我们可以自定义,就是在 Lambda 表达式那儿改,比如按照名字的前两个字母的不同来分类 users.GroupBy(user => user.Name.Substring(0, 2))
C# LINQ (2)

或者按照某个method的结果 来定义
C# LINQ (2)  C# LINQ (2)

或者”打出一套组合拳” — 组合Key
C# LINQ (2)

上一篇:【c++回顾】3.1经典算法问题-混合背包问题


下一篇:C#中的Skip()和Take()