sat*_*ana 6 c# linq excel ado.net
我正在使用ADO.Net将Excel文档读入数据集.数据集包含一组员工记录,其中包含作为数据表的登录和注销时间.我需要根据员工ID和日期从员工记录集中获取员工的首次登录和上次注销时间作为最终记录.这是我的示例数据:
Emp Id Name Login Logout
12345 RAMACHANDRAN 7/30/2013 8:40 7/30/2013 10:40
12345 RAMACHANDRAN 7/30/2013 12:30 7/30/2013 14:20
12345 RAMACHANDRAN 8/01/2013 18:10 8/01/2013 20:20
12345 RAMACHANDRAN 8/01/2013 20:40 8/01/2013 22:00
12346 RAVI 8/03/2013 12:30 8/03/2013 14:20
12346 RAVI 8/03/2013 18:10 8/03/2013 20:20
Run Code Online (Sandbox Code Playgroud)
我需要计算持续时间的最终记录为
Emp Id Name Login Logout Duration
12345 RAMACHANDRAN 7/30/2013 8:40 7/30/2013 14:20 5:40
12345 RAMACHANDRAN 8/01/2013 18:10 8/01/2013 22:00 3:50
12346 RAVI 8/03/2013 12:30 8/03/2013 20:20 7:50
Run Code Online (Sandbox Code Playgroud)
这是使用Linq查询此数据集的最佳方式吗?哪种方式最好
像这样的东西:
dt.GroupBy(l => new {l.EmpId, l.Login.Date},
(key, g)=> new {
EmpId = key.EmpId,
Name = g.First().Name,
Login = g.Min(d => d.Login),
Logout = g.Max(d => d.Logout),
Duration = g.Min(d => d.Login) - g.Max(d => d.Logout)
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |