weixin_42221975 2024-03-25 09:42 采纳率: 0%
浏览 10

Linq 提取DataTable分类汇总后的数据。

img


如图:GroupAndSummarize方法接收一个datatable,这个datatable里有"客户编号"、"客户名称"、"金额"、"开票总额"4个字段,然后在GroupAndSummarize方法中对这个datatable按“客户编号”进行分类汇总后,如何能在select new 里提取出“客户名称”这个字段的值?

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-25 09:42
    关注
    让阿豪来帮你解答,本回答参考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中,某一个客户编号会对应多个客户名称,但是这些客户名称是相同的,所以只需要提取出第一个数据行中的客户名称即可。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月25日

悬赏问题

  • ¥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局部变量对蓝图不可见