【笔记】DataTable或IList使用GroupBy方法的lamda表达式

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的用法post

            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();