DataTable GroupBy的用法
var result = dt.AsEnumerable().
GroupBy(g => new
{
StaffID = g.Field<string>("StaffID"),
StaffName = g.Field<string>("StaffName"),
ActivityDate = g.Field<string>("ActivityDate")
}).
Select(n => new DailyRouteDisplayItem
{
ActivityDate = n.Key.ActivityDate,
StaffID = n.Key.StaffID,
StaffName = n.Key.StaffName,
RouteList = n.Select(x => new RouteDisplayItem
{
StaffID = x["StaffID"].ToString(),
StaffName = x["StaffName"].ToString(),
ActivityID = x["ActivityID"].ToString(),
ActivityDate = x["ActivityDate"].ToString(),
CheckinType = x["CheckinType"].ToString(),
CheckinTime = x["CheckinTime"].ToString(),
CheckinLat = ConvertObject.ToDecimal(x["CheckinLat"]),
CheckinLng = ConvertObject.ToDecimal(x["CheckinLng"]),
CheckoutType = x["CheckoutType"].ToString(),
CheckoutTime = x["CheckoutTime"].ToString(),
CheckoutLat = ConvertObject.ToDecimal(x["CheckoutLat"]),
CheckoutLng = ConvertObject.ToDecimal(x["CheckoutLng"])
}).ToList()
}).ToList();
数组GroupBy的用法
var result = list.GroupBy(n => new { n.ActivityDate, n.StaffID, n.StaffName }).Select(n => new DailyRouteDisplayItem
{
ActivityDate = n.Key.ActivityDate,
StaffID = n.Key.StaffID,
StaffName = n.Key.StaffName,
RouteList = n.ToList()
}).ToList();