【发布时间】:2013-09-30 21:28:42
【问题描述】:
我有一个包含 5 列的 DataTable。
活动(字符串) 打卡(日期时间) 打卡(日期时间) 总计(双) 类型(整数)
我需要按出勤 DateTime.Date 和 OrderBy 类型分组。
所以本质上,如果我有数据,我希望它像这样分组/排序:
Activity Clock In Clock Out Total Type
Drawing 09/16/13 13:30 09/16/13 13:32 0.02 1
Drawing 09/16/13 13:40 09/16/13 13:42 0.02 1
Testing 09/16/13 13:50 09/16/13 13:52 0.02 1
Testing 09/16/13 13:30 09/16/13 13:34 0.04 2
Testing 09/16/13 13:40 09/16/13 13:54 0.14 2
Drawing 09/17/13 13:50 09/17/13 13:52 0.02 1
Testing 09/17/13 13:30 09/17/13 13:34 0.04 2
Testing 09/17/13 13:40 09/17/13 13:54 0.14 2
Testing 09/18/13 13:52 09/18/13 13:54 0.02 2
我已经在 DataTable 中拥有所有数据,我只需要分组方面的帮助...
有什么想法吗??我试过了:
groupedSortedTbl = dt.AsEnumerable()
.GroupBy(d => d.Field<DateTime>("CLOCK_OUT").Date)
.SelectMany(g => g.OrderBy(t => t.Field<int>("Type")))
.CopyToDataTable();
【问题讨论】:
-
您要按
Clock Out分组吗?如果是这样,你为什么要在之后使用SelectMany来平整它们?你可以改用OrderBy+ThenBy。 -
SelectMany正在有效地摆脱分组。您想要一个结果集还是一组组?