zoukankan      html  css  js  c++  java
  • linq to datatable group by 多列 实现

    void Main()
    {
    DataTable dt=new DataTable();
    dt.Columns.Add("flightno");
    dt.Columns.Add("flightTime",typeof(DateTime));
    dt.Columns.Add("arrivalTime",typeof(DateTime));
    dt.Columns.Add("passenger");
    dt.Rows.Add("AU123",Convert.ToDateTime("2010-12-20 12:30"),Convert.ToDateTime("2010-12-20 15:30"),"小Q");
    dt.Rows.Add("AU123",Convert.ToDateTime("2010-12-20 12:30"),Convert.ToDateTime("2010-12-20 15:30"),"小T");
    dt.Rows.Add("AU123",Convert.ToDateTime("2010-10-21 12:00"),Convert.ToDateTime("2010-12-21 14:30"),"小N");
    dt.Rows.Add("AU124",Convert.ToDateTime("2010-10-22 12:00"),Convert.ToDateTime("2010-12-22 11:30"),"小F");
    var query=from t in dt.AsEnumerable()
              group t by  new{t1=t.Field<DateTime>("flightTime"),t2=t.Field<DateTime>("arrivalTime")} into m
              select new
              {
              flightno=m.First().Field<string>("flightno"),
              flightTime=m.Key.t1,
              arrivalTime=m.Key.t2,
              passenger=string.Join("/",m.Select(n=>n.Field<string>("passenger")).ToArray()),
              rowcount=m.Count()
              };
      Console.WriteLine("==============输出结果:================");
      Console.WriteLine("flightno     flightTime               arrivalTime              passenger      rowcount" +"/n");
      query.ToList().ForEach(q=>Console.WriteLine(q.flightno+"    "+q.flightTime.ToString("yyyy-MM-dd HH:mm")+"     "+q.arrivalTime.ToString("yyyy-MM-dd HH:mm")+"    "+q.passenger+"                 "+q.rowcount));
      /*
      ==============输出结果:================
    flightno     flightTime               arrivalTime      passenger      rowcount
    AU123    2010-12-20 12:30     2010-12-20 15:30    小Q/小T             2
    AU123    2010-10-21 12:00     2010-12-21 14:30    小N                 1
    AU124    2010-10-22 12:00     2010-12-22 11:30    小F                 1
      */
    }

    E-MAIL:yiwuya@hotmail.com
    MSN:yiwuya@hotmail.com
    QQ:304899972
    纺织软件
  • 相关阅读:
    IE6-9中tbody的innerHTML不能赋值bug
    matchesSelector及低版本IE中对该方法的实现
    JavaScript日期组件的实现
    IE6/7/8中parseInt第一个参数为非法八进制字符串且第二个参数不传时返回值为0
    子程序设计原则
    仅IE6中链接A的href为javascript协议时不能在当前页面跳转
    JavaScript获取图片的原始尺寸
    JavaScript判断图片是否加载完成的三种方式
    Mac OS X 快捷键
    IE6-8中Date不支持toISOString方法
  • 原文地址:https://www.cnblogs.com/yiwuya/p/3018807.html
Copyright © 2011-2022 走看看