linq 语句如何写?求助

sowinwork 2015-09-08 11:03:03
winform界面datagridview中数据表
A B C
何 中 25
何 中 30
王 美 40
何 美 12
王 中 22

用Linq如何分组汇总C列 (例如 何 中 汇总为55)

var dgvrow = this.dgv.Rows.Cast<DataGridViewRow>();
var query = from item in dgvrow
group item by item.Cells[0].Values, item.Cells[1].Values into g
????这 里如何写或以上那里有问题?
...全文
108 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajianchina 2015-09-08
  • 打赏
  • 举报
回复
通过数据源中直接操作

var 查询结果 = 数据源.GroupBy(p => new { p.A, p.B }).Select(p => new { 分组Key = p.Key, 总数 = p.Sum(s => s.C) });
foreach(var x in 查询结果)
{
	Console.WriteLine(x.分组Key.A + x.分组Key.B + "=" + x.总数.ToString());
}
exception92 2015-09-08
  • 打赏
  • 举报
回复
用1楼的方式,在数据源中就计算好。
游离失所 2015-09-08
  • 打赏
  • 举报
回复
srouce.GroupBy(x=>x.A).select(x=>new{ name=x.Key count=x.Sum(y=>y.C) });
wc_ling 2015-09-08
  • 打赏
  • 举报
回复
select A,B,count(C) from table group by A,B SQL就可以,你自己试试吧,我没试,不过思路就是这样的
BenBenBears 2015-09-08
  • 打赏
  • 举报
回复
引用 楼主 sowinwork 的回复:
winform界面datagridview中数据表 A B C 何 中 25 何 中 30 王 美 40 何 美 12 王 中 22 用Linq如何分组汇总C列 (例如 何 中 汇总为55) var dgvrow = this.dgv.Rows.Cast<DataGridViewRow>(); var query = from item in dgvrow group item by item.Cells[0].Values, item.Cells[1].Values into g ????这 里如何写或以上那里有问题?

         var dgvrow = this.dgv.Rows.Cast<DataGridViewRow>();
         var query = from item in dgvrow
                     group item by new { xing=item.Cells[0].Value, ming=item.Cells[1].Value } into g
                     select new { Key = g.Key, result = g.Sum(s => Convert.ToDecimal(s.Cells[2].Value) )};

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧