今天看MVC遇到了GroupBY的Lambda表达式..有兴趣详细的看下去..得此笔记..记录之...

不罗嗦..上代码...

  //得到List<GroupEmail>对象  数据源
var groupMail = Xmall.Plugin.Edm.Utility.DataCache.EmailGroup.CacheList();

首先得到一个数据源对象

这个对象是一个邮件分组的数据列表..依据固定的缓存对象得出

分组代码如下

var v2 = groupMail.GroupBy(o => o.Valid == true);
//将得到的数据按照某属性进行分组

上边我们用到的是最最简单的分组..他得到的是一个分组数据对象..类型为 IEnumerable<IGrouping<TKey, TSource>>..可以使用.ToList()方法将其中的数据转换为直接读取的数值来使用

如果有特殊需要..比如..分组之后我还要得到一组数据中对应的每一个数据..

譬如..上边的实例是按照数据的是否验证来分组的..得到两组数据..Ture 或者 Flase

我还想得到为Ture的数据的集合..则可以将上述代码进行改造..

var v2 = groupMail.GroupBy(o => o.Valid == true, (iii, vvv) => new { group = iii, groupMails = vvv });
//将得到的数据按照某属性进行分组
//并将分组后的值按照分组值存入对象

我们依然会得到两条数据..依然可以使用 ToList()转换..

新加的代码   (iii, vvv) => new { group = iii, groupMails = vvv }  中,,每一个变量名称都是自定义的..

iii     代表的我们在前边的分组列得到的值..也就是我们的 True 和 False..  在后边的 New{} 中..给了自定义字段 group

vvv  代表的我们在该分组内的对应数据.. 在后边给了 groupMails..

这个groupMails我们需要说一下..他是延时加载的..本人在测试的时候..数据量比较小..没有感觉到有什么不同..但是数据大的话..就不知道了..很有可能 在你执行到下一个逻辑代码的时候..他还没有加载完毕

上述的代码得到的结果..在转换为ToList之后...对象是这样的..

V2依然可以转换为一个List对象..但列表里的对象则变成了有两个属性.. group 和 groupMails

group里存储的是分组的类别..True 和Flase..

groupMails对象转换为ToList()之后..存储的是与前边属性group一致的对象的集合..

也就意味着..

一个表里有三个True 两个False的值..

经过这般处理之后..

得到的对象里分成两个对象..

一个group为Ture..groupMails的对象有3个..

另外一个则group为False..groupMails的数量有2个..

var bb = v2.First(o => o.group == true).groupMails.Count();
//bb=3

这对于后边的操作优点就非常显而易见了..

你可以得到任何一个与你操作对象有相同某个属性的数量和实体对象了..

再也不用每一个都去单独查找..方便大大滴...

Linq_Lambda GroupBy使用笔记的更多相关文章

  1. Pandas之groupby( )用法笔记

    groupby官方解释 DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True ...

  2. CUBRID学习笔记 41 sql语法之groupby 等

    cubrid的中sql查询语法groupby GROUP BY ... HAVING Clause 按dept_no分组 SELECT dept_no, avg(sales_amount) FROM ...

  3. 《笔记》Python itertools的groupby分组数据处理

    今天遇到这么一个需求,需要将这样的数据进行分组处理: [(, ), (, ), (, ), (, ), (, ), (, )] 处理之后我可能需要得到这样的结果: [(, (, , (, , (, ) ...

  4. RxSwift学习笔记7:buffer/window/map/flatMap/flatMapLatest/flatMapFirst/concatMap/scan/groupBy

    1.buffer的基本使用 let publishSubject = PublishSubject<String>() //buffer 方法作用是缓冲组合,第一个参数是缓冲时间,第二个参 ...

  5. itertools.groupby()/itertools.compress() 笔记

    关于itertools.groupby() itertools.groupby()就是将相邻的并且相同的键值划分为同一组,相似功能可以看https://docs.python.org/3/librar ...

  6. 【笔记】DataTable或IList使用GroupBy方法的lamda表达式

    DataTable GroupBy的用法 var result = dt.AsEnumerable(). GroupBy(g => new { StaffID = g.Field<stri ...

  7. python库学习笔记——分组计算利器:pandas中的groupby技术

    最近处理数据需要分组计算,又用到了groupby函数,温故而知新. 分组运算的第一阶段,pandas 对象(无论是 Series.DataFrame 还是其他的)中的数据会根据你所提供的一个或多个键被 ...

  8. Pandas进阶笔记 (一) Groupby 重难点总结

    如果Pandas只是能把一些数据变成 dataframe 这样优美的格式,那么Pandas绝不会成为叱咤风云的数据分析中心组件.因为在数据分析过程中,描述数据是通过一些列的统计指标实现的,分析结果也需 ...

  9. Python数据分析笔记目录

    速查笔记 使用实例 Pandas-数据导入 (未完成) Pandas-数据探索 基础属性 shape indexs columns values dtype/dtypes 汇总和计算描述统计 coun ...

随机推荐

  1. java中会存在内存泄漏吗,请简单描述。

    内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中.Java 使用有向图的方式进行垃圾回收管理,可以消除引用循环的问题,例如有两个对象,相互引用,只要它们和根进程不可达的,那么GC也是可以 ...

  2. Sublime Text 3配置C++编译运行

    2016.9.8更新: linux(Ubuntu16.04)下的配置,编译后用终端运行,解决了不能输入的问题 { "encoding": "utf-8", &q ...

  3. 查看mysql语句运行时间

    show profiles 之类的语句来查看 mysql> show profiles; Empty set mysql> show variables like "%pro%& ...

  4. ZooKeeper分布式集群安装

    我特意选择了稳定版...... 奇数意思是说奇数和偶数对故障的容忍度是一致的....所以建议配置奇数个,并不是必须奇数... 一.master节点上安装配置 1.下载并解压ZooKeeper-3.4. ...

  5. 警告 “util.NativeCodeLoader: Unable to load native-hadoop library for your platform”

    http://blog.csdn.net/sagaryu/article/details/52137989 我的是2.6.4,用上面链接提供的编译好的资源覆盖原来的就好了. 不管也没事. 就是因为系统 ...

  6. 洛谷P1726 上白泽慧音

    题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...

  7. FT232RL变砖之后

    FT232RL是个是神奇的片子,说万能可能有些夸张,但是...总之就是FTDIChip这个神奇的公司基于类似的技术,做了很多好用的产品,包括转IIC啦,转SPI啦,密码狗啦之类的.是个很有用的工具就对 ...

  8. JDK7的Comparison method violates its general contract异常

    1.摘要 前一阵遇到了一个使用Collections.sort()时报异常的问题,跟小伙伴@zhuidawugui 一起排查了一下,发现问题的原因是JDK7的排序实现改为了TimSort,之后我们又进 ...

  9. Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property 'xxx': no matching editors or conversion strategy found

    今天在完成项目的时候遇到了下面的异常信息: 04-Aug-2014 15:49:27.894 SEVERE [http-apr-8080-exec-5] org.apache.catalina.cor ...

  10. 演示get、post请求如何算sn,算得sn如何使用

    import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.UnsupportedEncoding ...