飞鱼1900 2016-02-29 11:24 采纳率: 71.4%
浏览 3440
已采纳

c# 数据统计 请问如何实现

遇到一个棘手问题,请老师们帮解答一下:
    原始的表
    ![图片说明](https://img-ask.csdn.net/upload/201602/29/1456744918_718502.jpg)

    统计表
    ![图片说明](https://img-ask.csdn.net/upload/201602/29/1456744972_848207.jp

    请问用c#如何实现
  • 写回答

7条回答 默认 最新

  • threenewbee 2016-02-29 12:44
    关注
     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Q239660
    {
        class Program
        {
            static void Main(string[] args)
            {
                string data = @"aaa bb 10 cc 11 dd 12
    aaa cc 9 dd 4 bb 2
    aaa cc 16 bb 9 dd 8
    bbb a1 6 a2 9 a3 8
    bbb a2 7 a3 4 a1 6";
                string result = string.Join("\r\n", data.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)
                    .Select(x => x.Split(' ')).SelectMany(x => Enumerable.Range(0, 3).Select(y => new { a = x[0], b = x[y * 2 + 1], c = int.Parse(x[y * 2 + 2]) }))
                    .GroupBy(x => x.a)
                    .Select(x => new { a = x.Key, b = x.GroupBy(y => y.b).Select(y => new { b = y.Key, c = y.Sum(z => z.c) }) })
                    .Select(x => x.a + " " + string.Join(" ", x.b.Select(y => y.b + " " + y.c.ToString()))));
                Console.WriteLine(result);
            }
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏