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

    1. void Main()  
    2. {  
    3. DataTable dt=new DataTable();  
    4. dt.Columns.Add("flightno");  
    5. dt.Columns.Add("flightTime",typeof(DateTime));  
    6. dt.Columns.Add("arrivalTime",typeof(DateTime));  
    7. dt.Columns.Add("passenger");  
    8. dt.Rows.Add("AU123",Convert.ToDateTime("2010-12-20 12:30"),Convert.ToDateTime("2010-12-20 15:30"),"小Q");  
    9. dt.Rows.Add("AU123",Convert.ToDateTime("2010-12-20 12:30"),Convert.ToDateTime("2010-12-20 15:30"),"小T");  
    10. dt.Rows.Add("AU123",Convert.ToDateTime("2010-10-21 12:00"),Convert.ToDateTime("2010-12-21 14:30"),"小N");  
    11. dt.Rows.Add("AU124",Convert.ToDateTime("2010-10-22 12:00"),Convert.ToDateTime("2010-12-22 11:30"),"小F");  
    12.    
    13.     
    14. var query=from t in dt.AsEnumerable()  
    15.           group t by  new{t1=t.Field<DateTime>("flightTime"),t2=t.Field<DateTime>("arrivalTime")} into m  
    16.           select new  
    17.           {  
    18.           flightno=m.First().Field<string>("flightno"),  
    19.           flightTime=m.Key.t1,  
    20.           arrivalTime=m.Key.t2,  
    21.           passenger=string.Join("/",m.Select(n=>n.Field<string>("passenger")).ToArray()),  
    22.           rowcount=m.Count()  
    23.           };  
    24.   Console.WriteLine("==============输出结果:================");  
    25.   Console.WriteLine("flightno     flightTime               arrivalTime              passenger      rowcount" +"/n");  
    26.    
    27.   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));  
    28.     
    29.   /* 
    30.   ==============输出结果:================ 
    31. flightno     flightTime               arrivalTime      passenger      rowcount 
    32. AU123    2010-12-20 12:30     2010-12-20 15:30    小Q/小T             2 
    33. AU123    2010-10-21 12:00     2010-12-21 14:30    小N                 1 
    34. AU124    2010-10-22 12:00     2010-12-22 11:30    小F                 1 
    35.   */  
    36. }  

    转载自http://blog.csdn.net/q107770540/article/details/6086577

  • 相关阅读:
    详述JavaScript实现继承的几种方式
    理解javascript函数调用和“this”
    React-Native 组件开发方法
    React Native 中 component 生命周期
    React-Native 样式指南
    React Native 之flex布局
    转每天一个linux命令(5):rm 命令
    [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)
    转每天一个linux命令(4):mkdir命令
    转每天一个linux命令(3):pwd命令
  • 原文地址:https://www.cnblogs.com/codeloves/p/2767642.html
Copyright © 2011-2022 走看看