LinQ 的Groupby 问题 请教
我的DataTable表结构如下:
MId CId FId PId
想在我想对这个表LINQ 按 MId PId 进行 GroupBy
得到下面这样的表
MId PId
我应该怎么做啊?
[解决办法]
好吧。。写了一个完整的实例,你参考一下吧:
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 { flightTime=m.Key.t1, arrivalTime=m.Key.t2 }; DataTable dtResult=new DataTable(); dtResult.Columns.Add("flightTime",typeof(DateTime)); dtResult.Columns.Add("arrivalTime",typeof(DateTime)); query.ToList().ForEach(q=>dtResult.Rows.Add(q.flightTime,q.arrivalTime)); }