计算合计和累计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算合计和累计相关的知识,希望对你有一定的参考价值。

 1        /*计算合计和累计*/
 2 
 3             List<数据> 存储过程 = new List<数据>();
 4             存储过程.Add(new 数据 { 年段 = 1, 分数 = 59,      姓名 = "浪子燕青",学号 = "104" });
 5             存储过程.Add(new 数据 { 年段 = 1, 分数 = 100,     姓名 = "及时雨宋",学号 = "101" });
 6             存储过程.Add(new 数据 { 年段 = 2, 分数 = 89.44,   姓名 = "智多星吴",学号 = "201" });
 7             存储过程.Add(new 数据 { 年段 = 2, 分数 = 70,      姓名 = "小旋风李",学号 = "202" });
 8             存储过程.Add(new 数据 { 年段 = 1, 分数 = 80,      姓名 = "行者武松",学号 = "102" });
 9             存储过程.Add(new 数据 { 年段 = 2, 分数 = 90,      姓名 = "花和尚鲁",学号 = "203" });
10             存储过程.Add(new 数据 { 年段 = 3, 分数 = 50,      姓名 = "黒旋风李",学号 = "301" });
11             存储过程.Add(new 数据 { 年段 = 3, 分数 = 100,     姓名 = "青面兽杨",学号 = "301" });
12             存储过程.Add(new 数据 { 年段 = 3, 分数 = 100,     姓名 = "混江龙李",学号 = "302" });
13             存储过程.Add(new 数据 { 年段 = 1, 分数 = 87,      姓名 = "母大虫顾",学号 = "103" });
14 
15 
16             List<数据> 最终结果 = new List<数据>();
17             
18             List<int> 年段集合 = 存储过程.GroupBy(p => p.年段).Select(p => p.Key).ToList();
19 
20             foreach (var item in 年段集合)
21             {
22                 List<数据> 临时集合 = new List<数据>();
23 
24                 临时集合.AddRange(存储过程.Where(p => p.年段 == item));
25 
26                 临时集合 = 临时集合.OrderBy(p => p.学号).ToList();
27 
28                 临时集合.Add(new 数据 { 学号 = "合计", 分数 = 临时集合.Sum(p => p.分数), 年段 = 999, 姓名 = "" });
29 
30                 double 这一次的累计结果 = 临时集合.Where(p => p.学号 == "合计").Sum(p => p.分数);
31                 double 上一次的累计结果 = 最终结果.Where(p => p.学号 == "合计").Sum(p => p.分数);
32 
33                 double sum = 上一次的累计结果 + 这一次的累计结果;
34 
35                 临时集合.Add(new 数据 { 学号 = "累计", 分数 = sum, 年段 = 999, 姓名 = "" });
36                 最终结果.AddRange(临时集合);
37                 临时集合.Clear();
38             }
39 
40             string json = Newtonsoft.Json.JsonConvert.SerializeObject(最终结果);//序列化结果
41             File.WriteAllText("d:\\1.json", json);

 

以上是关于计算合计和累计的主要内容,如果未能解决你的问题,请参考以下文章

公司的日记账每个月都需要结出本月合计和本年累计,正确的划线方式是怎么划?

layui合计功能

关于《报表》的实际运用案例

MS SQL实时累计流量,得到日、月、年累计

c#怎么计算Datatable里面数据的合计和总计

如何合计计算字段的每个枚举的总数?