对字典对象组成的List集合进行Lambda表达式的GroupBy
来源:互联网 发布:阿里云 内网穿透 编辑:程序博客网 时间:2024/06/13 15:16
昨天同事问了一个问题,怎么把字典对象组成的List集合进行按code分组,将其qty进行Sum累和。
考虑了C#的Lambda表达对集合的万能性,试了一下,代码如下:
public static void Main(string[] args) { TestLambdaGroupBy(); Console.Read(); } public static void TestLambdaGroupBy() { //创建类型为Dictionary<string, object>的List集合,目的是要将同一code的qty进行汇总 var dic1 = new Dictionary<string, object>(); dic1.Add("code", "code1"); dic1.Add("name", "name1"); dic1.Add("qty", 2); var dic2 = new Dictionary<string, object>(); dic2.Add("code", "code1"); dic2.Add("name", "name1"); dic2.Add("qty", 7); var dic3 = new Dictionary<string, object>(); dic3.Add("code", "code2"); dic3.Add("name", "name2"); dic3.Add("qty", 5); var list = new List<Dictionary<string, object>>(); list.Add(dic1); list.Add(dic2); list.Add(dic3); //利用Lambda表达是的GroupBy函数进行分组 list = list.GroupBy(listItem => listItem["code"]).Select(group => { var dic = new Dictionary<string, object>(); dic.Add("code", group.Key); dic.Add("name", group.Select(g => g["name"]).First()); dic.Add("qty", group.Sum(g => Convert.ToInt32(g["qty"]))); return dic; }).ToList(); foreach (var item in list) { Console.WriteLine("code: " + item["code"] + " name: " + item["name"] + " qty: " + item["qty"]); } }
运行结果:
阅读全文
0 0
- 对字典对象组成的List集合进行Lambda表达式的GroupBy
- Lambda表达式对List的处理
- java使用lambda表达式对List集合进行操(JDK1.8)
- Lambda表达式实现List集合的自定义排序
- JDK8对List的简化操作-Lambda表达式
- 用groupby对可迭代对象进行分组
- 关于MySql 对GroupBy进行排序的解决方案
- 截取List集合中的一部分,组成新的List集合
- List排序问题:根据list对象的创建时间排序,后用lambda表达式
- 按bean的属性值对list集合进行排序
- lambda函数是变成对集合进行排序的几种方式
- C#对List 的对象的属性进行排序
- 对lambda表达式的解析(一)
- 对lambda表达式的解析(二)
- 对C11的“Lambda表达式”总结
- PHP、Javascript 对lambda表达式的支持
- 在Java 8中对stream带有lambda表达式的操作进行调试
- 对自定义对象集合List中的数据进行排序
- 迷茫的程序员
- 数组中出现次数超过一半的数字
- 网易2017春招编程题:赶去公司 [python]
- 从paxos到zookeeper读书笔记(第四章)
- 代码生成工具 rapid-framework
- 对字典对象组成的List集合进行Lambda表达式的GroupBy
- mybatis java.sql.SQLException: 无效的列类型
- 剖析InnoDB与MyISAM的区别-mysql
- Java-001-认识Java
- 数据库和数据仓库的区别?
- Preference,PreferenceCategory,PreferenceList,PreferenceCheckBox等控件的简单讲解
- SM9必要的一些数学基础知识(二)
- Java-002-认识JDK并配置path环境变量
- JavaScript 疲劳终极指南:我们行业的真相 罗雪