如图:GroupAndSummarize方法接收一个datatable,这个datatable里有"客户编号"、"客户名称"、"金额"、"开票总额"4个字段,然后在GroupAndSummarize方法中对这个datatable按“客户编号”进行分类汇总后,如何能在select new 里提取出“客户名称”这个字段的值?
Linq 提取DataTable分类汇总后的数据。
如图:GroupAndSummarize方法接收一个datatable,这个datatable里有"客户编号"、"客户名称"、"金额"、"开票总额"4个字段,然后在GroupAndSummarize方法中对这个datatable按“客户编号”进行分类汇总后,如何能在select new 里提取出“客户名称”这个字段的值?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
可以使用LINQ语句来对datatable进行分类汇总,并在select new语句中提取出“客户名称”这个字段的值。具体代码如下:public static void GroupAndSummarize(DataTable dataTable) { var result = from row in dataTable.AsEnumerable() group row by row.Field<string>("客户编号") into g select new { 客户编号 = g.Key, 客户名称 = g.FirstOrDefault().Field<string>("客户名称"), 金额总和 = g.Sum(row => row.Field<decimal>("金额")), 开票总额 = g.Sum(row => row.Field<decimal>("开票总额")) }; foreach (var r in result) { Console.WriteLine(r.客户编号 + " " + r.客户名称 + " " + r.金额总和 + " " + r.开票总额); } }
在select new语句中,使用g.FirstOrDefault().Field("客户名称")来提取出第一个数据行中的“客户名称”字段值。因为在这个datatable中,某一个客户编号会对应多个客户名称,但是这些客户名称是相同的,所以只需要提取出第一个数据行中的客户名称即可。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 在虚拟机环境下完成以下,要求截图!
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见