2013-08-12 43 views
0

我有一个问题;实际上我在我的数据库表格中以HH.mm格式工作,我想用LINQ来总结所有的工作时间,任何1请告诉如何做到这一点。使用linq求和时间间隔

在整个周末我有所有的工作时间,我已经用HH:mm替换HH.mm格式,但我不知道如何使用Linq在timespanSum()中解析它。

请大家帮忙。

var totalWeekHours = (from twh in db.MytimeMaster 
         where ((twh.date >= lstsun && twh.date <= tilldate) 
          && (twh.agentID == agentid)) 
         select twh.totalworkinghours).ToList(); 

if (totalWeekHours.Count > 0) 
{ 
    List cnvrtToTimespanlist = new List(); 
    foreach(var list in totalWeekHours) 
    { 
     cnvrtToTimespanlist.Add(list.ToString().Replace('.', ':')); 
    } 
} 
+3

请更有效地格式化您的代码...以及为什么您的数据库数据仍然以文本形式存在?你能以任何方式改变它吗? (例如,“工作分钟”的数值可以。) –

+2

“可以任意1”...请。我明白英语不是堆栈溢出许多人的第一语言,但这不是使用文本俚语的借口。 – Tim

+0

@Tim它已经改变了。 – Default

回答

0

您可以使用Aggregate方法。

var sum = (from twh in db.MytimeMaster 
where ((twh.date >= lstsun && twh.date <= tilldate) && (twh.agentID == agentid)) 
select twh.totalworkinghours).Aggregate(TimeSpan.FromMinutes(0), (total, next) => total + next); 

p.s.假定时间间隔使用TimeSpan。